【发布时间】:2014-08-11 13:23:52
【问题描述】:
我有两个 swift 文件:
main.swift 和 view.swift
在 main.swift 我有一个 variable (Int) 最初设置为 0。
使用IBACtion,我将variable 设置为10,一切正常。
但是,如果我尝试从 view.swift 访问 variable,通过像 main().getValue() 这样的简单调用,我总是得到 0 而不是 10,即使变量有在 main.swift 中更改了它的值。
main.swift 中的方法getValue() 如下所示:
func getValue() -> Int {
return variable
}
编辑
这是代码(翻译自意大利语:D)
import Cocoa
class Main: NSObject {
var variable: Int = 0
func getValue() -> Int {
return variable
}
@IBAction func updateVar(sender: AnyObject!) {
variable = 10
}
}
class View: NSView {
override func drawRect(dirtyRect: NSRect) {
println(Main().getValue()) //Returns always 0
}
}
提前致谢 阿尔贝托
【问题讨论】:
-
我们需要看看变量是如何定义的。它是在类还是结构中定义的?您如何尝试访问其他文件中的值?
-
在类中定义。我正在尝试访问其他类中的变量,只需键入 main().getValue()
-
通过键入
main(),您正在创建main类的新实例,variable的默认值为 (0) -
到目前为止你告诉我们的还有很多未知数。首先,文件在 swift 中并不重要。这都是关于类/结构和实例的。
main是你班级的名字吗(通常班级都是大写的)?另外,您使用的是Xib文件吗?我很奇怪将IBAction与一个简单地称为main的类一起使用。通常它是 UIKit 或 Cocoa 视图或控制器类的子类。 -
是的,我们需要查看更多代码 :) 这里还不够