0
我只是想知道是否有任何方法來提高我的循環速度,或最佳實踐建議,因爲我覺得它看起來很糟糕。如何加快Swift循環的性能?
下面是代碼:
for (index, _) in filteredArray.enumerate() {
if index == 0 || index % 4 == 0 {
let mediaItem = Item()
mediaItem.id = filteredArray[index + 3]
let photoURL = NSURL(string: filteredArray[index + 1])
guard let url = photoURL else { return }
let data = NSData(contentsOfURL: url)
let finishImage = UIImage(data: data!)
mediaItem.Photo = finishImage
mediaItem.orderCount = filteredArray[index + 2]
mediaItem.UUId = filteredArray[index]
self.dataSourceItems.insert(mediaItem)
}
}
我的猜測是這條線:'let data = NSData(contentsOfURL:url)'由於網絡請求速度慢而花費的時間最多。你是否通過儀器運行代碼來找出瓶頸? –
'NSData(contentsOfURL:url)'是同步的,這就是減慢你的循環。您可能會對異步Web調用感興趣... – Larme
我看到您使用'if index == 0 || index%4 == 0'但0%4 = 0,所以,除非我錯了,你可以簡單地用'if index%4 == 0'替換你的條件。 –