在Swift中的类之间共享变量

时间:2015-03-29 21:30:09

标签: swift

我刚刚进入Swift并且正在努力如何根据另一个类中的变量在一个类中简单地设置标签的文本属性。在一个快速文件中,我有:

Class GameController:

var instructsText = String()

func gameControl()
instructsText = array[2] as string //this gets the instructions text from a Plist file.

在另一个swift文件中我有

Class HelpViews: UIView {

override init(frame: CGRect) {

// add the instructions label
var instructsLabel = UILabel(frame: CGRectMake(ScreenWidth/2-300, ScreenHeight-150, 600, 100))
instructsLabel.text = instructsText - ERROR 'instructs is not a subtype of 'NSString'
self.addSubview(instructsLabel)

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:0)

目前还不清楚为什么你会收到你说的错误。在任何时候,(至少在上面的代码中)你是否创建了GameController类的对象,因此编译器应该告诉你它不能识别变量instructsText。但是,我建议使用计算的类属性。一个例子是:

class MyClass {
class var pi: Double { return 3.1415926 }
// ...
}
println(MyClass.pi)

哪个会打印出3.1415926。在您的代码中,一种可行的方法如下:

Class GameController:

class var instructsText = String {return array[2] as String}

在HelpView类中:

Class HelpViews: UIView {

override init(frame: CGRect) {

// add the instructions label
var instructsLabel = UILabel(frame: CGRectMake(ScreenWidth/2-300, ScreenHeight-150, 600, 100))
instructsLabel.text = GameController.instructsText
self.addSubview(instructsLabel)

Apple Swift文档为here

答案 1 :(得分:0)

首先尝试println(instructsText)变量,看看你试图设置什么。 以下是一些案例:

  1. 未声明变量
  2. 可能是零
  3. 不是字符串