-2
在斯威夫特變種我必須斯威夫特出示此完成處理的變量:完成處理從Objective-C的
-test:(void(^)(id result, NSError* error))completion;
必須將此會是什麼樣斯威夫特?在這種情況下id == AnyObject和NSError ==錯誤?
在斯威夫特變種我必須斯威夫特出示此完成處理的變量:完成處理從Objective-C的
-test:(void(^)(id result, NSError* error))completion;
必須將此會是什麼樣斯威夫特?在這種情況下id == AnyObject和NSError ==錯誤?
id
導入到斯威夫特Any
,NSError *
斯威夫特卡倫特3成爲Error?
讓你完成處理程序應在斯威夫特這樣寫的:
func completionHandler(result: Any, error: Error?) {
// Do something
}
obj.test(completionHandler)
或者,如果你想內嵌定義它:
let handler = { (result: Any, error: Error?) -> Void in
// Do something
}
obj.test(handler)
如果你在ObjectiveC中已經有了這個方法,你可以看到它是如何在Xcode的「生成接口」中出現在Swift中的。 –
感謝它有點幫助我,但現在xCode想要糾正這個競爭處理器,當我創建一個變量,在Swift它看起來像: (completionBlock完成:(@escaping(Any?,Error?) - > Swift.Void )!) –
什麼是「競賽經理」? – gnasher729