是否有一种方法可以合并两个字符串或变量来访问Swift中的另一个变量?



我有一个程序,试图列出我的学校类(在UITableView),以及每个类的家庭作业。我有变量来跟踪每个班级的作业列表(即" english ", " math "等),我想这样做,以便在我的函数中,我可以取班级的名称,并添加"hw"查找相关的变量列表。我有我所有的作业列表,每个类在一个视图控制器,并基于什么人选择(与didSelectRowAt功能,我可以找到),我会显示不同的表视图内容,在该类的作业(而不是为每个主题单独的视图控制器)。下面是我的代码:

@IBOutlet var className: UILabel!
var classList = ["Language", "Math", "English"]
var Languagehw = ["hi", "bye", "New Assignment . . .", "Remove Assignment . . ."]
var Mathhw = ["him", "bye", "New Assignment . . .", "Remove Assignment . . ."]
var Englishhw = ["hime", "bye", "New Assignment . . .", "Remove Assignment . . ."]

func addAssignment(subject: String) {
for subject in classList {
if className.text! == subject { 
// subject + hw to find associated variable (ex. subject = English, subject + hw => Englishhw, which is one of my homework lists
}
else {}
}
}

在这段代码中,我通过for循环检查className是否等于classList(包含所有类的列表)中的一个主题,然后尝试通过添加subject + hw来查找相关列表。例如,如果我想找到我的"英语";列表中,我可以使用该函数查找他们选择的类是否为"English",然后添加"hw"在最后找到正确的列表。然而,我不知道是否有一种方法来连接字符串(在这种情况下,英语和hw)来找到一个变量。是真的有连接字符串变量?

忘记连接;这是无关紧要的。

你需要知道的是Swift没有自省。没有办法从字符串"语言">变量Language(或Languagehw或其他任何值)的值;这是形而上学的不可能。

你需要重新考虑你的整个架构(这已经很糟糕了:你应该使用对象,而不是数组)。如果您需要通过字符串的方式访问一个特定的值,那将是一个带有字符串键的字典。

在for循环中,可以写成-

if className.text! == subject + "hw" { 
// here subject + "hw" is Englishhw now.
}

我们可以很容易地将字符串连接为-在给定字符串mystring + "hw"之后"hw" + mystring

相关内容

  • 没有找到相关文章

最新更新