web-dev-qa-db-ja.com

次のブロックプロパティのSwift)に相当するプロパティブロック宣言は何ですか?

Objective-Cではこれを行います:

@property (nonatomic, copy) void(^completion)(MyObject * obj);

これを迅速に行う正しい方法は何ですか?

19
zumzum

対応するクロージャープロパティは次のように宣言されます

class MyClass {
     var completion : ((MyObject) -> Void)? // or ...! for an implicitly unwrapped optional
}

次のようなプロパティを設定できます

completion = {
    (obj : MyObject) -> Void in
    // do something with obj ...
}

これは(自動型推論のために)短縮することができます

completion = {
    obj in
    // do something with obj ...
}
45
Martin R