2016-09-14 47 views
1

後,我更新的Xcode 8.0版(8A218a)SWIFT 3,我得到這個錯誤斯威夫特錯誤無法將類型的價值 '(AFHTTPRequestOperation?AnyObject?) - >()

無法將類型的價值'(AFHTTPRequestOperation ?,AnyObject?) - >()'to expected argument type'((AFHTTPRequestOperation?,Any?) - > Void)!'

這是以上顯示錯誤的代碼。

jsonmanager.post("http://myapi.com", 
         parameters: nil, 
         success: { (operation: AFHTTPRequestOperation!,responseObject: AnyObject!) in 
         if(responseObject.object(forKey: "meta")?.object(forKey: "status")?.intValue == 200){.... 

我做錯了什麼?

它運作良好,在以前的版本7.3.1迅速2.

回答

5

回調方法簽名已經改變。在斯威夫特2是

(AFHTTPRequestOperation?, AnyObject?) -> Void 

在斯威夫特3這是

(AFHTTPRequestOperation?, Any?) -> Void 

您應該更改如下

success: { (operation: AFHTTPRequestOperation!,responseObject: AnyObject!) 

行至

success: { (operation: AFHTTPRequestOperation?, responseObject: Any?) 
+0

後,我改變我得到這個消息:無法調用非函數類型的值'Any ?!' – stevengbu

+0

而這裏面如果:類型'Any?'的值?沒有成員'object' – stevengbu

+1

你可以嘗試將'responseObject'強制轉換爲'AnyObject'。 'AnyObject'和'Any'有很大不同,所以你將不得不重寫你的應用程序的一部分來正確處理'Any'而不是'AnyObject' – donnywals

相關問題