我想在逻辑上组织类属性,以表示它们是一个逻辑单元,并将它们与其他不太相关的类属性区分开来。
我想过用我班上的结构做这件事。但是,我似乎无法从struct属性setter调用类方法。我得到了一个似乎不合适的编译错误:“在调用中缺少参数#1的参数”
这似乎与calling method from struct in swift不同 函数在struct中。在我的例子中,方法是通用的,不仅适用于我的结构,而是适用于所有类属性。因此,我不想在结构中移动它们。
您是否有关于如何在类中将属性组织成紧密(呃)逻辑单元的想法?
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()")
}
}
答案 0 :(得分:4)
内部类型MyStruct
对其外部类型MyClass
一无所知。因此,foo
无法调用MyStruct
函数。为了更好地整理代码,建议您使用// MARK: - whatever this section is
条评论。类型不在此处组织代码。类型在这里为程序创建正确的抽象。
答案 1 :(得分:1)
我修复了你的错误:
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"
}
}