我在一个小的单一窗格应用程序中管理不同的语言,为每个注释使用不同的字符串数组,由整数变量" userLang"索引,然后设置label.text = array [index]。基本代码是:
import UIKit
class ViewController: UIViewController {
var userLang = 0
var arrayOne = ["hi", "hola"]
var arrayTwo = ["Bye", "Adios"]
@IBOutlet weak var msgArrayOne: UILabel!
@IBOutlet weak var msgArrayTwo: UILabel!
msgArrayOne.text = arrayOne[userLang] //Error here: !Expected declaration
msgArrayTwo.text = arrayTwo[userLang] //odd, but this line gets no error until I
//remove the first line above, then
//this line gets the same error.
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
我一直在接受#34;预期声明"错误。我尝试在引号(而不是数组)中使用一个简单的字符串作为测试,但仍然得到相同的错误。我搜索过网络和找不到任何解决问题的建议。我尝试更改名称,如果我正在使用"保留"引用。
我搜索了Apple的Swift& amp; s开发者手册。无法找到标签的正确语法。这种语法在其他项目中有效,所以我不确定是怎么回事。我甚至尝试将相关部分复制/粘贴到一个新项目(在Xcode错误的情况下,其中一个在线建议)没有更好的结果。我注意到小的差异(空间或资本)可以在Swift中产生很大的不同。我在这里做错了吗?有什么建议吗?
答案 0 :(得分:22)
msgArrayOne.text = arrayOne[userLang]
msgArrayTwo.text = arrayTwo[userLang]
这些不是声明,您需要将它们移动到viewDidLoad()或其他适当的位置。您的标签语法很好,但是您将代码放在类中的错误位置。