Swift 2 + SwiftyJSON:使用未解析的标识符错误
Swift 2 + SwiftyJSON: Use of unresolved identifier error
我正在 Swift 2 和 iOS 9 中制作一个 API REST 应用程序,使用 SwiftyJSON 支持 Swift 2 (https://github.com/andrelind/SwiftyJSON).当我获取数据并打印时,我使用此代码:
RestApiManager.sharedInstance.getRandomUser { json in
let results = json["results"]
for (index: String, subJson: JSON) in results{
var user = subJson["user"].string
print(user)
}
}
使用此代码,我收到此错误:
var user = subJson["user"].string
Use of unresolved identifier 'subJson error'
并且根据 Swift 2 文档,带字典的循环如下:
for (key, value) in source{
//Do something
}
和SwiftyJSON文档我可以这样使用:
for (key: String, subJson: JSON) in json {
//Do something you want
}
如果理论上声明是正确的,任何人都知道为什么我会收到此错误。我正在使用 Xcode 7.0 beta 3、Swift 2 和我的项目 if for iOS 9。谢谢!
您混淆了参数的内部名称和迭代给您的实际参数。以下应该有效:
// demo JSON
let json = ["results" : ["first" : ["user" : 123], "second" : ["user" : 456], "third" : ["user" : 789]]]
let results = json["results"]!
for (index: String, subJson: JSON) in results {
var user = JSON["user"]
print(user)
}
为了更清楚一点:
for (index: myIndex, subJson: mySubJSON) in results {
var user = mySubJSON["user"]
print(user)
}
subJSON
不是包含您的 json 的变量名称,名称是 JSON
/ mySubJSON
,索引也是如此。
试试这个:
RestApiManager.sharedInstance.getRandomUser { (json) -> Void in
let results = json["result"]
for result in results {
let user = result.1["user"].object
print(user)
}
}
您的 results
将 return 一个 (key, value)
,因此当您编码 result.1["user"]
时,您将收到 result
的 value
我正在 Swift 2 和 iOS 9 中制作一个 API REST 应用程序,使用 SwiftyJSON 支持 Swift 2 (https://github.com/andrelind/SwiftyJSON).当我获取数据并打印时,我使用此代码:
RestApiManager.sharedInstance.getRandomUser { json in
let results = json["results"]
for (index: String, subJson: JSON) in results{
var user = subJson["user"].string
print(user)
}
}
使用此代码,我收到此错误:
var user = subJson["user"].string
Use of unresolved identifier 'subJson error'
并且根据 Swift 2 文档,带字典的循环如下:
for (key, value) in source{
//Do something
}
和SwiftyJSON文档我可以这样使用:
for (key: String, subJson: JSON) in json {
//Do something you want
}
如果理论上声明是正确的,任何人都知道为什么我会收到此错误。我正在使用 Xcode 7.0 beta 3、Swift 2 和我的项目 if for iOS 9。谢谢!
您混淆了参数的内部名称和迭代给您的实际参数。以下应该有效:
// demo JSON
let json = ["results" : ["first" : ["user" : 123], "second" : ["user" : 456], "third" : ["user" : 789]]]
let results = json["results"]!
for (index: String, subJson: JSON) in results {
var user = JSON["user"]
print(user)
}
为了更清楚一点:
for (index: myIndex, subJson: mySubJSON) in results {
var user = mySubJSON["user"]
print(user)
}
subJSON
不是包含您的 json 的变量名称,名称是 JSON
/ mySubJSON
,索引也是如此。
试试这个:
RestApiManager.sharedInstance.getRandomUser { (json) -> Void in
let results = json["result"]
for result in results {
let user = result.1["user"].object
print(user)
}
}
您的 results
将 return 一个 (key, value)
,因此当您编码 result.1["user"]
时,您将收到 result
的 value