我正在尝试UITableView
使用从Alamofire获取的数据进行更新。我的后端Web服务返回的数据如下:
{"hashtags":["test","test2"]}
我的“ swift”代码如下所示:
Alamofire.request("\(serverURL)/users/\(username)/hashtags")
.validate()
.responseJSON { response in
switch response.result {
case .success:
DispatchQueue.main.async(execute: {
if let jsonData = response.result.value as? [String: AnyObject] {
for hashtag in jsonData {
print(JSON(hashtag))
print(hashtag)
if let userHashtags = SingleHashtag.fromJSON(JSON(hashtag)){
for hash in userHashtags.hashtagText {
print(hash)
self.items.add(hash)
函数SingleHashtag.fromJSON
是该类的一部分:
class SingleHashtag: NSObject {
var hashtagText: [String]
init(hashtagText: [String]) {
self.hashtagText = hashtagText
super.init()
}
class func fromJSON(_ json: JSON) -> SingleHashtag? {
let hashtagText:[String] = json["hashtags"].arrayValue.map { $0.stringValue}
return SingleHashtag(hashtagText: hashtagText)
}
}
我无法使它工作。问题是这两行:
print(JSON(hashtag))
print(hashtag)
打印:
unknown
("hashtags", <__NSArrayI 0x170c22200>(
test,
test2
)
)
并且因为我正在传递unknown
,所以其余代码未执行。我在这里想念什么?
您的JSON似乎是一本字典,唯一的键包含一个字符串数组。
您试图遍历您的字典,就好像它是一个数组一样。错了
尝试使用两步可选绑定,如下所示:
if let jsonData = response.result.value as? [String: AnyObject],
hashtags = jsonData["hashtags"] as? [String] {
for hashtag in hashtags {
//your code here
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句