2015-09-25 72 views
0

我正在遷移到swift 2.0我正在使用以下代碼。但我得到的錯誤在迅速2.無法在swift 2中獲取anyobject類型的值

 SRWebClient.POST("upload url") 
      .data(imageData, fieldName:"image_field", data: ["username":"username","key":"test"]) 
      .send({(response:AnyObject!, status:Int) -> Void in 
       if status == 200 { 
        var s_status=response?["status"] as! Int 
... 

我收到以下錯誤var s_status線。

Cannot subscript a value of type 'AnyObject!' with an index of type 'String' 

我該如何解決?

回答

1

錯誤是告訴你,你不能在AnyObject類型的對象上使用[「status」],因爲如果它不是字典,它可能不起作用。您需要首先將響應轉換爲字典。

我看你使用SRWebClient,這是我從來沒有用過,但根據他們的github上這似乎是安全的:

let responseJSON = response! as Dictionary<String, String> 

我猜他們在他們的代碼序列第一。我雖然不知道......我會在強制演員陣容之前確保該對象是一個字典。

+0

我還有一個像這樣的問題。你知道如何解決這個問題嗎? http://prntscr.com/8khotd – Okan

+0

是的,這是同樣的問題。當你迅速從NSArray中取出一個項目時,它是一個AnyObject。你需要投它。這裏有一個例子,如果你認爲檢索的對象是一個NSDictionary。 '對於數據中的項'{if 'if let itemDict:NSDictionary = item as? NSDictionary {' 'let username = itemDict [「username」]' '}' '}' 對不起,它不讓我把我的代碼放在不同的行上。 – LLooggaann

相關問題