Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/116.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
Ios 阿拉莫菲尔,正在下载多幅图像_Ios_Swift_Alamofire - Fatal编程技术网

Ios 阿拉莫菲尔,正在下载多幅图像

Ios 阿拉莫菲尔,正在下载多幅图像,ios,swift,alamofire,Ios,Swift,Alamofire,我正在尝试从url下载一个图像,并使其成为表视图中每个单元格的tableviewcell图像。程序下载每个单元格的内容,然后根据从服务器传入的id值使用alamofire下载图像 当我使用下面的代码时,第一个图像总是与第二个图像相同,我不明白为什么,当我添加更多的单元格时,它们工作得很好。我今天才开始使用alamofire,所以我可能遗漏了一些明显的东西,如果是这样的话,请提前道歉 for result in resultsAsArray { if l

我正在尝试从url下载一个图像,并使其成为表视图中每个单元格的tableviewcell图像。程序下载每个单元格的内容,然后根据从服务器传入的id值使用alamofire下载图像

当我使用下面的代码时,第一个图像总是与第二个图像相同,我不明白为什么,当我添加更多的单元格时,它们工作得很好。我今天才开始使用alamofire,所以我可能遗漏了一些明显的东西,如果是这样的话,请提前道歉

     for result in resultsAsArray {

                if let resultDict = result as? NSDictionary {

                    let cell = UITableViewCell(style: .Value1, reuseIdentifier: "identifer")
                    cell.textLabel?.text = resultDict.objectForKey("name") as? String

                    let id = (resultDict.objectForKey("productId") as! String).toInt()!
                    cell.tag = id

                    cell.imageView?.image = UIImage(named: "placeholder")

                    let image = request(.GET,
                        "http://www.website.com/\(id).png").response() {

                        (_, _, data, _) in

                            println("loading image for \(id)")

                            let image = UIImage(data: data! as NSData)
                            cell.imageView!.image = image

                    }

                    products.append(cell)

                    (view.viewWithTag(1) as! UITableView).reloadData()

                }

            }

我已经确定问题出在服务器端,当我更改图像时,它们不会立即在服务器上更改-alamofire工作正常

  • 我最初将第一个单元格图像设置为应该用于数字2的图像,在我移动它之后,alamofire缓存了它,因此它始终显示用于数字2的图像

我已经确定问题出在服务器端,当我更改图像时,它们不会立即在服务器上更改-alamofire工作正常

  • 我最初将第一个单元格图像设置为应该用于数字2的图像,在我移动它之后,alamofire缓存了它,因此它始终显示用于数字2的图像

此外,当我从服务器上删除所有图像时,它们仍在应用程序中加载-可能问题出在服务器端?另一方面,整个方法是倒退的。您不应该使用图像构建单元格数组。您应该实例化单元格的唯一位置是在
cellforrowatinedexpath
中,您应该将单元格排在队列之外,而不是实例化自己的单元格。通常人们会使用延迟加载图像,而不是加载整个表的所有图像(为每个表重新加载)。好的,谢谢你,我总是试图使代码尽可能“正确”,所以我会进行这些更改。另外,当我从服务器中删除所有图像时,它们仍在应用程序中加载-可能是服务器端的问题?顺便说一句,整个方法是倒退的。您不应该使用图像构建单元格数组。您应该实例化单元格的唯一位置是在
cellforrowatinedexpath
中,您应该将单元格排在队列之外,而不是实例化自己的单元格。通常人们会使用延迟加载图像,而不是加载整个表的所有图像(为每个表重新加载)。好的,谢谢你,我一直在努力使代码尽可能“正确”,所以我会进行这些更改。