0
我正在嘗試編寫一些調用現有Objective C函數的Swift代碼。該目標C函數如下:使用Swift與需要塊作爲參數的Objective C方法進行交互
+(void) getCurrentUserprofileWithCompletion:(RequestCallback)completion {...}
其中RequestCallback在.h文件中被定義爲:
typedef void (^RequestCallback) (ResponseInfo *responseInfo);
我已經嘗試了一些不同的東西,但似乎沒有任何工作。看起來最合乎邏輯的我的代碼是:
let callback: (responseInfo: ResponseInfo) -> Void = {(responseInfo: ResponseInfo) -> Void in
if let organization: Organizations = Organizations.organizationWithId(orgId) {
completionBlock(false, nil)
} else {
self.switchOrganization(user, organization: organization, completionBlock: completionBlock)
}
}
Users.getCurrentUserprofileWithCompletion(callback)
但是這是得到錯誤
不能轉換類型的值「(responseInfo:ResponseInfo) - >虛空」預期參數類型「 RequestCallback!」
有沒有人有任何想法我在做什麼錯在這裏?我搜索了互聯網尋找幫助,包括各種蘋果文檔,但無論是我失明還是誤讀,因爲似乎沒有任何工作。
在此先感謝!
謝謝你這麼多強麥!我不知道爲什麼我在Swift中使用這種語法的一個心理障礙。我花了兩年時間在Scala中編寫代碼,所以這些概念對我來說都不是什麼新東西,但是我發現自己只是瞪着這個。 :/ –