【发布时间】:2015-09-15 19:49:16
【问题描述】:
我正在使用 Swift 2.0 制作应用程序,并且在原型单元格中使用带有图像视图的表格视图。该应用程序从 facebook 服务器下载一些图像,我想显示它们。这些图像都是从不同的 url 下载的,所以我正在使用一个程序来循环它们并下载,就像我使用名称从互联网上获取它们并显示一样,但我有点卡住了..
func fetchPicture(identifier: String, completion: (image: UIImage) -> Void)
{
let url2 = NSURL (string: "http://graph.facebook.com/" + identifier + "/picture?type=normal")
let urlRequest = NSURLRequest(URL: url2!)
NSURLConnection.sendAsynchronousRequest(urlRequest, queue: NSOperationQueue.mainQueue()) {
(response, data, error) -> Void in
if error != nil
{
print(error)
}
else
{
if let pf = UIImage(data: data!)
{
dispatch_async(dispatch_get_main_queue())
{
completion(image: pf)
self.tableView.reloadData()
}
}
}
}}
var images = [UIImage]()
let queue2 = dispatch_queue_create("images", DISPATCH_QUEUE_SERIAL)
dispatch_apply(newArray.count, queue2) { index in
let identifier = newArray[index]
fetchPicture(identifier) {
image in dispatch_async(queue2)
{
}
}
}
我将单元格中的 imageview 设置为等于变量“image”,所以基本上我需要做一些类似 self.image = pf 的事情,但每个用户需要不同。使用名称,我使用数组执行此操作,但这不适用于我假设的图像..
帮助非常感谢伙计们! 谢谢!
【问题讨论】:
-
顺便说一句,如果你自己实现了这个,你可能会考虑使用
NSURLSession而不是最近不推荐使用的NSURLConnection。
标签: ios swift uitableview