无法从数组中获取数据
问题描述:
我正试图将数据访问到包含某些图像URL的数组中。无法从数组中获取数据
每当我尝试创建我的图像,我的应用程序永远不会停止加载,并作出一个循环,顺便说一句,我的数组永远不会停下来填充。
这是我的代码:
class swipe : UIViewController, KinderDelegate {
var urls = [NSURL!]()
var pictureApp: String!
func fetchdata(int: Int, completion: (()->())?) {
for repo in repo {
urls.append(NSURL(string: repo.picture_url!)!)
dump(repos)
i++
NSLog("nombre de line = %i", PicArray.count)
pictureApp = repo.picture_url
}
if let img = imageCache[pictureApp!] {
let newCard = Model()
newCard.image = img
print("image présente")
}else {
for url in urls{
if #available(iOS 8.0, *) {
let newCard = Model()
dispatch_async(dispatch_get_global_queue(QOS_CLASS_BACKGROUND, 0)) {
if let data = NSData(contentsOfURL: url) {
let image = UIImage(data: data)!
newCard.image = (image: image)
dispatch_async(dispatch_get_main_queue()) {
newCard.image
}
}
}
self.data.append(newCard)
}
}
}
if self.data.count == 4 {
completion!()
return
} else {
self.fetchData(0, completion: completion)
}
}
}
我如何可以利用它们在我的阵列来创建一些图像的URL?
答
像由Azzaknight的建议,我试图与循环“回购的回购协议”,并改变了我的代码是:现在
do {
data = try NSData(contentsOfURL: NSURL(string: repo.picture_url!)!, options: NSDataReadingOptions.DataReadingMappedIfSafe)
let image = UIImage(data: data!)!
newCard.image = (image: image)
dispatch_async(dispatch_get_main_queue()) {
newCard.image
}
}
catch {
print("Handle \(error) here")
}
}
}
self.data.append(newCard)
}
一切工作!
不应该是 '回购回购' – Azzaknight
除了Azzaknight,'回购'从哪里来? – adolfosrs
谢谢大家,实际上我不知道为什么我只是没有使用我的循环“repo for repos”,我尝试过使用它,并将我的代码更改为我的更新代码,并且所有工作,谢谢:) – f1rstsurf