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