2015-06-23 54 views
0

在夫特1.2夫特2.0:JSON數組解析錯誤

https://gist.github.com/anonymous/a167148a8a6d169292ff

在夫特2.0(誤差)

,所以我改變代碼如下。

let url = NSURL(string:"http://dl-8.one2up.com/onetwo/content/2015/6/15/9c3b51249fbbe20ca9d841401e276d97.php") 
    let allContactsData = NSData(contentsOfURL:url!) 

    do{ 
     var allContacts : AnyObject! = try NSJSONSerialization.JSONObjectWithData(allContactsData!, options: NSJSONReadingOptions()) 
    }catch{ 
    print(error) 
    } 

    if let json = allContacts as? Array<AnyObject> { 
    print(json) 


     for index in 0...json.count-1 { 

      let contact : AnyObject? = json[index] 

      let collection = contact! as! Dictionary<String, AnyObject> 

      let name : AnyObject? = collection["AnimeName"] 
      let cont : AnyObject? = collection["Episodes"] 

      names.append(name as! String) 
      episodes.append(cont as! String) 
     } 

    } 
    print(names) 
    print(episodes) 

但這不起作用。

if let json = allContacts as? Array< AnyObject >

誤差:使用未解決的識別符「allContacts」

+0

你應該拉你的代碼從要點,這樣我們就不必打開多個標籤,瞭解你的問題。 :) – Bloodyaugust

+0

對不起@Bloodyaugust – Shado

回答

2

你allContacts變量在做塊被創建,因此,其範圍被限制在做塊,並且不能被該塊的外部訪問。如果您希望可以在塊外部訪問它,請將其聲明在塊外部,但是請繼續在塊內部進行分配。 IE:

let allContactsData = NSData(contentsOfURL:url!) 
var allContacts:AnyObject 
do{ 
    allContacts = try NSJSONSerialization.JSONObjectWithData(allContactsData!, options: NSJSONReadingOptions()) 
}catch{ 
print(error) 
} 
0
do{ 
var allContacts = try NSJSONSerialization.JSONObjectWithData(allContactsData!, options: NSJSONReadingOptions()) as! [Dictionary<String, AnyObject>] 
for contact in allContacts { 
let name : AnyObject? = contact["AnimeName"] 
let cont : AnyObject? = contact["Episodes"] 

names.append(name as! String) 
episodes.append(cont as! String) 
} 
}catch{ 
print(error) 
} 
+0

運行成功,輸出:致命錯誤:意外地發現零,同時展開一個可選值(lldb)。 T^T – Shado

+0

想要登錄allContacts? –

+0

對不起,ios9需要TLSv1.2 SSL – Shado