0
所以我終於開始做我的Swift3轉換。由於我們有一個用ObjC編寫的遺留代碼庫,因此我遇到了很多以下錯誤。從Swift3調用完成處理程序的Objective C方法(完成是IUO?)
的ObjC的定義是在這裏:
-(void)getRecommendationHintsWithCompletion:(void(^)(NSArray *recommendationHints, NSError *error))completion;
在雨燕2.2,我們把它稱爲是這樣的:
manager.getRecommendationHints { (hints:[AnyObject]!, error: NSError!) in
//code
})
迅速3遷移跑後,雨燕該行代碼沒有被更改,但我得到了錯誤:
Cannot convert value of type '([AnyObject]!, NSError!) ->()' to expected argument type '(([Any]?, Error?) -> Void)!'
所以我TRIE d:
manager.getRecommendationHints { (hints:[Any]?, error: Error?) in
//code
})
但我仍然得到:
Cannot convert value of type '([AnyObject]?, Error?) ->()' to expected argument type '(([Any]?, Error?) -> Void)!'
它看起來像那裏的預期參數是一個蘊無包裝可選,但我不知道如何面對這一切。
我該怎麼辦?謝謝!
你能告訴我它是如何從我的答案有什麼不同? –
我想我們都在同一時間回答 –
標記爲已接受,但有一個xcode問題,直到我清理項目(Cmd-Shift-K)並重新啓動XCode之前,錯誤仍然出現。 :( – SuperDuperTango