1. ホーム
  2. swift

[解決済み] Swiftでクラスメソッド/プロパティを作成するには?

2022-11-30 12:43:08

質問

Objective-Cのクラス(または静的)メソッドは + を宣言することで実現されます。

@interface MyClass : NSObject

+ (void)aClassMethod;
- (void)anInstanceMethod;

@end

これをSwiftで実現するにはどうしたらよいでしょうか。

どのように解決するのか?

これらは タイププロパティ そして タイプメソッド を使用し class または static のキーワードを使用します。

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