我如何在Swift中创build类方法/属性?

Objective-C中的类(或静态)方法是在声明中使用+完成的。

 @interface MyClass : NSObject + (void)aClassMethod; - (void)anInstanceMethod; @end 

这怎么能在Swift中实现呢?

它们被称为types属性types方法,并使用classstatic关键字。

 class Foo { var name: String? // instance property static var all = [Foo]() // static type property class var comp: Int { // computed type property return 42 } class func alert() { // type method print("There are \(all.count) foos") } } Foo.alert() // There are 0 foos let f = Foo() Foo.all.append(f) Foo.alert() // There are 1 foos 

它们在Swift中被称为types属性和types方法,并使用class关键字。
在swift中声明一个类方法或Type方法:

 class SomeClass { class func someTypeMethod() { // type method implementation goes here } } 

访问该方法:

 SomeClass.someTypeMethod() 

或者你可以在swift中引用方法

如果它是一个类,那么在类前加上声明;如果是一个结构,则用static声明。

 class MyClass : { class func aClassMethod() { ... } func anInstanceMethod() { ... } } 

Swift 1.1没有存储类的属性。 您可以使用一个闭包类属性来实现它,该类属性可以获取绑定到类对象的关联对象。 (只适用于派生自NSObject的类)

 private var fooPropertyKey: Int = 0 // value is unimportant; we use var's address class YourClass: SomeSubclassOfNSObject { class var foo: FooType? { // Swift 1.1 doesn't have stored class properties; change when supported get { return objc_getAssociatedObject(self, &fooPropertyKey) as FooType? } set { objc_setAssociatedObject(self, &fooPropertyKey, newValue, objc_AssociationPolicy(OBJC_ASSOCIATION_RETAIN_NONATOMIC)) } } .... } 

用类或静态(如果它是一个函数)预先声明,如果是属性,则用静态声明。

 class MyClass { class func aClassMethod() { ... } static func anInstanceMethod() { ... } static var myArray : [String] = [] }