Swift 从同一类中的结构调用方法

Swift 从同一类中的结构调用方法,swift,class,struct,Swift,Class,Struct,我想从逻辑上组织类属性,以表示它们是一个逻辑单元,并将它们与其他关系不太紧密的类属性区分开来 我想在我的类中使用一个struct来实现这一点。然而,我似乎无法从结构属性设置器调用类方法。我得到了一个似乎不恰当的编译错误:“调用中缺少参数#1的参数” 这似乎不同于 函数在结构中的位置。在我的例子中,这些方法是泛型的,不仅适用于我的结构,而且适用于所有类属性。因此,我不想在结构中移动它们 你对如何在类中将属性组织成紧密的(er)逻辑单元有什么想法吗 class MyClass { struc

我想从逻辑上组织类属性,以表示它们是一个逻辑单元,并将它们与其他关系不太紧密的类属性区分开来

我想在我的类中使用一个struct来实现这一点。然而,我似乎无法从结构属性设置器调用类方法。我得到了一个似乎不恰当的编译错误:“调用中缺少参数#1的参数”

这似乎不同于 函数在结构中的位置。在我的例子中,这些方法是泛型的,不仅适用于我的结构,而且适用于所有类属性。因此,我不想在结构中移动它们

你对如何在类中将属性组织成紧密的(er)逻辑单元有什么想法吗

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"
    }
}

这甚至不需要编译。我忘了添加一个返回值,现在它的工作就是用类替换静态关键字