【发布时间】:2016-08-15 22:57:16
【问题描述】:
我正在使用 Swift 和 Xcode,我已经使用以下变量构建了模型对象:
var itemImageNames: [String]?
var itemTitle: String?
var itemDescription: String?
var itemURL: String?
在主视图控制器中,我创建了一个模型类型的变量。我正在启动一个 NSURLSession...dataTaskWithURL... 并添加我通过使用 append 从服务器收到的 itemImageNames。数据返回有效,我已经对其进行了解析,并且确实以字符串的形式返回。我尝试了两种解决方案,
-
从图像中创建一个字符串数组并将该数组设置为 self.item.itemImageNames?
do { if let json = try NSJSONSerialization.JSONObjectWithData(data!, options: []) as? [[String: AnyObject]] { var imageURLs: [String] = [""] for dictionary in json { if let imageURL = dictionary["url"] as? String { imageURLs.append(imageURL) print(imageURL) } } self.featuredItem.itemImageNames? = imageURLs -
使用 self.item.itemImageNames?.append(image) 附加每个字符串
do { if let json = try NSJSONSerialization.JSONObjectWithData(data!, options: []) as? [[String: AnyObject]] { for dictionary in json { if let imageURL = dictionary["url"] as? String { self.featuredItem.itemImageNames?.append(imageURL) print(imageURL) } }
由于某种原因,itemImageNames 仍然为零,使用这两种方法。如果我只使用一张图片(例如第一张图片)并将 itemImageNames 更改为“String?”,我相信它会起作用。
此外,我可以轻松地更新 itemTitle、itemDescription 和 itemURL,只需将它们分别设置为 self.item.itemTitle、self.item.itemDescription、self.item.itemURL。关于如何将信息输入数组,我有什么遗漏吗?
【问题讨论】:
-
您能否提供示例代码,说明您如何尝试将数据从 NSURLSession 添加到 itemImageNames 数组?那会很有帮助。
-
嗨,我刚刚更新了这个问题。谢谢!
-
在 #1 中,我不确定那是什么?会在你的最后一行做。如果您删除该问号,它是否有效?在 #2 中,验证 itemImageNames 不是 nil,因为附加到 nil 数组基本上什么都不做。
-
谢谢,Rich 和 conarch!两个答案都解决了问题。
标签: arrays swift xcode nsurlsession