2016-05-24 9 views
0

からのブロックとObjective-Cのメソッドを呼び出す:は、次のように私は<code>Objective-C</code>のメソッドを持っているスウィフト

- (void)myFunction:(void (^)(NSArray *data))successBlock error:(void (^)(NSError *error))errorBlock { 
    //...// 
    successBlock(someData); 
} 

私はSwiftからそれを呼びたいが、私は、構文を理解することはできません。

ものは何でも私がしようと、それは文句を言う:あなたはパラメータ名が必要な場合は

SomeClass.sharedInstance().myFunction(
    successBlock: { 
     (data) in 
     print(data) 
    }, 
    error: { 
     (error) in 
     print(error) 
    }) 

'(((([AnyObject]!) -> Void!, error: ((NSError!) -> Void)!) -> Void)!

+0

コード補完はあなたに適切な構文を提案すると思われる – vadian

+0

私が提案を自動完成した場合、Xcodeは私に同じエラーで失敗する –

答えて

0

非関数型の値を呼び出すことはできません。このスウィフトの等価は

SomeClass.sharedInstance().myFunction({ data in 
    print(data) 
    }) { error in 
    print(error) 
    } 

あるsuccessBlockerrorBlockあなたはObjC側でそれらを宣言しなければなりません。

関連する問題