Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 为什么我的项目没有进入阵列?Xcode和swift NSURLSession_Arrays_Swift_Xcode_Nsurlsession - Fatal编程技术网

Arrays 为什么我的项目没有进入阵列?Xcode和swift NSURLSession

Arrays 为什么我的项目没有进入阵列?Xcode和swift NSURLSession,arrays,swift,xcode,nsurlsession,Arrays,Swift,Xcode,Nsurlsession,我正在使用Swift和Xcode,我已经用以下变量构建了模型对象: var itemImageNames: [String]? var itemTitle: String? var itemDescription: String? var itemURL: String? 在mainviewcontroller中,我创建了一个模型类型的变量。我正在启动NSURLSession…dataTaskWithURL。。。并使用append添加我从服务器收到的ItemImageName。数据返回时是有效

我正在使用Swift和Xcode,我已经用以下变量构建了模型对象:

var itemImageNames: [String]?
var itemTitle: String?
var itemDescription: String?
var itemURL: String?
在mainviewcontroller中,我创建了一个模型类型的变量。我正在启动NSURLSession…dataTaskWithURL。。。并使用append添加我从服务器收到的ItemImageName。数据返回时是有效的,我已经对它进行了分析,它确实是以字符串的形式返回的。我试过两种方法

  • 从图像中创建一个字符串数组,并将该数组设置为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)在获取字符串时追加每个字符串

  • 出于某种原因,使用这两种方法,itemImageNames仍然为零。如果我只使用一个图像(例如第一个图像),并将ItemImageName更改为“字符串”,我相信它会起作用

    此外,只需将itemTitle、itemDescription和itemURL分别设置为self.item.itemTitle、self.item.itemDescription和self.item.itemURL,就可以轻松地更新itemTitle、itemDescription和itemURL。在如何向数组中输入信息方面,我是否缺少一些东西?

    在方法2中,在尝试附加到itemImageNames数组之前初始化它。如果您尝试附加到一个为零的数组,那么什么也不会发生

    itemImageNames = []
    
    for dictionary in json {
        if let imageURL = dictionary["url"] as? String {
            self.featuredItem.itemImageNames?.append(imageURL)
            print(imageURL)
        }
    }
    

    您能否提供示例代码,说明如何尝试将NSURLSession中的数据添加到itemImageNames数组中?那会很有帮助的。嗨,我刚刚更新了问题。谢谢在#1中,我不确定那是什么?你最后一行就行了。去掉那个问号行吗?在#2中,验证itemImageNames不是nil,因为附加到nil数组基本上不会起任何作用。谢谢,Rich和conarch!两个答案都解决了问题。
    itemImageNames = []
    
    for dictionary in json {
        if let imageURL = dictionary["url"] as? String {
            self.featuredItem.itemImageNames?.append(imageURL)
            print(imageURL)
        }
    }