2016-07-02 48 views
0

我有代碼工作正常,並沒有警告從我的服務器解析一些JSON。它直接運行並返回控制檯中的值,直到我嘗試導入AWSNS框架,因此它在標題中給出警告,並在運行時說出「 - [__ NSCFArray長度]:無法識別的選擇器發送到實例」。任何想法,當我導入亞馬遜的SNS框架時,這可能會失敗?Cast from'String ?!'到不相關的類型'[[String:AnyObject]]'總是失敗

這裏是我的代碼:

import UIKit 
import AWSSNS 

class ViewController: UIViewController { 
override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 
    self.getEvents() 
} 
func getEvents(){ 
    let requestURL: NSURL = NSURL(string: "http://www.example.com/mydirectory/JSONFile")! 
    let urlRequest: NSMutableURLRequest = NSMutableURLRequest(URL: requestURL) 
    let session = NSURLSession.sharedSession() 
    let task = session.dataTaskWithRequest(urlRequest) { 
     (data, response, error) -> Void in 
     let httpResponse = response as! NSHTTPURLResponse 
     let statusCode = httpResponse.statusCode 
     if (statusCode == 200) { 
      print("File downloaded successfully.") 
      do{ 
       let json = try NSJSONSerialization.JSONObjectWithData(data!, options:.AllowFragments) 
       if let events = json["events"] as? [[String: AnyObject]] { 
        for event in events { 
         if let eventName = event["eventName"] as? String { 
          if let day = event["day"] as? String { 
           print(day,eventName) 
          } 
         } 
        } 
       } 
      }catch { 
       print("Error with Json: \(error)") 
      } 
     } 
    } 
    task.resume() 
} 
+0

該警告出現在「if let events = json [」events「] as?[[String:AnyObject]]的行上」 –

+0

檢查選項左鍵單擊json以查看Xcode認爲該變量具有哪些類型,並且沒有導入 – Feldur

回答

0
if let events = json["events"] as? [[String: AnyObject]] { 

你可能有在JSON字符串,而你試圖將它轉換爲一個字典,這是行不通的。

在此處放置斷點並檢查以查看要驗證的JSON內容。

+0

我將我的JSON簡化爲以下內容:{「employees」:{「firstName」:「John」,「lastName」:「Doe」}, {「firstName」:「Anna」,「lastName 「:」Smith「}, {」firstName「:」Peter「,」lastName「:」Jones「} ]}它工作得很好,並返回正確的值到控制檯,直到我導入AWSSNS框架...然後它如上所述失敗。 –

+0

我取消註釋導入AWSSNS框架後立即收到警告......所以它尚未解析任何內容,因爲它沒有運行。 –

0

"-[__NSCFArray length]: unrecognized selector sent to instance"

我不認爲從JSON來你的問題。如果你可以解析JSON,這意味着JSON沒有問題。檢查selector

相關問題