Swift 从同一类中的结构调用方法
我想从逻辑上组织类属性,以表示它们是一个逻辑单元,并将它们与其他关系不太紧密的类属性区分开来 我想在我的类中使用一个struct来实现这一点。然而,我似乎无法从结构属性设置器调用类方法。我得到了一个似乎不恰当的编译错误:“调用中缺少参数#1的参数” 这似乎不同于 函数在结构中的位置。在我的例子中,这些方法是泛型的,不仅适用于我的结构,而且适用于所有类属性。因此,我不想在结构中移动它们 你对如何在类中将属性组织成紧密的(er)逻辑单元有什么想法吗Swift 从同一类中的结构调用方法,swift,class,struct,Swift,Class,Struct,我想从逻辑上组织类属性,以表示它们是一个逻辑单元,并将它们与其他关系不太紧密的类属性区分开来 我想在我的类中使用一个struct来实现这一点。然而,我似乎无法从结构属性设置器调用类方法。我得到了一个似乎不恰当的编译错误:“调用中缺少参数#1的参数” 这似乎不同于 函数在结构中的位置。在我的例子中,这些方法是泛型的,不仅适用于我的结构,而且适用于所有类属性。因此,我不想在结构中移动它们 你对如何在类中将属性组织成紧密的(er)逻辑单元有什么想法吗 class MyClass { struc
class MyClass {
struct MyStruct {
static var aVarInMyStruct: String? {
didSet {
anotherVarInMyStruct = foo() // This gives compile error "missing argument for parameter #1 in call"
}
}
static var anotherVarInMyStruct: String?
}
func foo() {
println("I am foo()")
}
}
内部类型
MyStruct
对其外部类型MyClass
一无所知。因此,没有foo
函数可从MyStruct
调用。为了更好地组织您的代码,我建议您使用//MARK:-无论这部分是什么
注释。类型不是用来组织代码的。这里的类型用于为程序创建正确的抽象。我修复了您的错误:
class MyClass {
struct MyStruct {
static var aVarInMyStruct: String? {
didSet {
anotherVarInMyStruct = MyClass.foo() // This gives compile error "missing argument for parameter #1 in call"
}
}
static var anotherVarInMyStruct: String?
}
static func foo()->String {
println("I am foo()")
return "it is ok"
}
}
这甚至不需要编译。我忘了添加一个返回值,现在它的工作就是用类替换静态关键字