1
我使用下面的代碼遍歷eh專輯,如果它找到我需要的,它應該停止進一步循環。enumerateGroupsWithTypes循環不停止
public func importPhotosFromGallery(albumName: String = "Last Imported") {
fetchAlbum(albumName) { album, error in
if let error = error {
print("Error occurred fetching album: \(error.localizedDescription)")
} else {
if let album = album {
print("found it! \(album.name)")
}
}
}
}
private func fetchAlbum(albumName: String, completion: (album: ALAssetsGroup?, error: NSError?) ->()) {
assetsLibrary.enumerateGroupsWithTypes(ALAssetsGroupAlbum, usingBlock: { group, stop in
if group != nil {
group.setAssetsFilter(ALAssetsFilter.allPhotos())
print("group name: \(group.name)")
if group.name == albumName {
stop.initialize(true)
completion(album: group, error: nil)
}
} else {
let notFoundError = NSError.createError("Album Not Found")
completion(album: nil, error: notFoundError)
}
}) { error in
completion(album: nil, error: error)
}
}
我改變了stop
變量的值,以true
找到比賽結束後,但它仍然執行else塊,在年底返回notFoundError
。這是print
聲明的輸出。
組名稱:最近導入
找到了!去年進口
發生錯誤獲取專輯:找不到相冊
如何阻止這種情況的發生?
哦,廢話。我不知道。如果檢查'if stop.memory.boolValue!= true {}',我將填充處理程序填入else塊中。現在都好。謝謝。 – Isuru
@Isuru不客氣! – luk2302