在 swift 1.2 中
在 Swift 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”
最佳答案
您的 allContacts 变量是在 do block 中创建的,因此它的范围仅限于 do block ,并且不能在该 block 之外访问。如果你想让它在 block 外可以访问,就在 block 外声明它,然后在 block 内继续赋值。即:
let allContactsData = NSData(contentsOfURL:url!)
var allContacts:AnyObject
do{
allContacts = try NSJSONSerialization.JSONObjectWithData(allContactsData!, options: NSJSONReadingOptions())
}catch{
print(error)
}
关于arrays - swift 2.0 : Json Array Parsing errors,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31009397/