import Cocoa
public class Ut {
public func foo(m: Int) -> Int {
return m*m
}
}
class ViewController: NSViewController {
let j = 3
let k = Ut.foo(j) // 'ViewController.Type' does not have a member named 'j'
...
答案 0 :(得分:2)
不幸的是,在为属性提供初始值时,您无法访问其他属性:
struct S {
let a = 1
// error: S.Type does not have a member named a
let b = a + 1
}
相反,您必须在init
:
struct S {
let a: Int
let b: Int
init() {
// note, a must be initialized in here
// too if b relies on it
a = 1
b = a + 1
}
}
(另外,看起来你正在使用Ut.foo
作为类级函数,但它是一个成员函数 - 但这个特殊错误是关于属性init的)
答案 1 :(得分:0)
您必须将foo(m: Int)
作为类功能才能直接调用。否则,您必须创建一个Ut实例,然后在此实例上调用foo()
class func foo(m: Int) -> Int {
return m*m
}
然后在其他地方: 设k = Ut.foo(j)
如果您将j作为参数传递,则此调用必须放在函数内,而不是在类级别。如果您想在课程级别调用,请传递值(例如:let k = Ut.foo(5)
)