我试图将所有用户图像的缩略图收集到一个数组中,但是当我调用ALAssetsLibrary的enumerateAssetsUsingBlock方法时,似乎什么都没有发生。
import UIKit
import AssetsLibrary
class ViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {
@IBOutlet var photoLibView: UICollectionView
var assetLibrary : ALAssetsLibrary = ALAssetsLibrary()
func showCustomLibrary() {
self.assetLibrary = ALAssetsLibrary()
var assetsArray : [ALAsset] = []
var imageArray : [CGImage] = []
var count = 0
var countOne = 0
let assetsType : ALAssetsGroupType = Int(ALAssetsGroupAll)
var groupBlock : ALAssetsLibraryGroupsEnumerationResultsBlock = {
(group: ALAssetsGroup!, stop: UnsafePointer<ObjCBool>) in
println("is goin")
count++
var assetBlock : ALAssetsGroupEnumerationResultsBlock = {
(result: ALAsset!, index: Int, stop: UnsafePointer<ObjCBool>) in
imageArray.append(result.thumbnail().takeRetainedValue())
assetsArray.append(result)
countOne++
}
group.enumerateAssetsUsingBlock(assetBlock)
}
var groupFailureBlock : ALAssetsLibraryAccessFailureBlock = {
(NSError) in
println("errorrrrrrrr")
}
assetLibrary.enumerateGroupsWithTypes(assetsType, usingBlock: groupBlock, failureBlock: groupFailureBlock)
println("number of groups")
println(count)
println("number of total assets")
println(countOne)
self.photoLibView.insertItemsAtIndexPaths(imageArray)
}
}当我运行showCustomLibrary()被调用时,编译器输出number of groups 0 number of total assets 0 fatal error: unexpectedly found nil while unwrapping an Optional value,因为似乎ALAssetsLibrary的组没有被枚举。(没有打印“is goin”)。知道这是怎么回事吗?提前感谢!
发布于 2014-09-11 15:37:48
我找到问题了。在这个“组”中,结果不应该为零,否则它会迅速崩溃。所以我们应该检查nil case,比如
var groupBlock : ALAssetsLibraryGroupsEnumerationResultsBlock = {
(group: ALAssetsGroup!, stop: UnsafePointer<ObjCBool>) in
println("is goin")
if group != nil
{
count++
var assetBlock : ALAssetsGroupEnumerationResultsBlock = {
(result: ALAsset!, index: Int, stop: UnsafePointer<ObjCBool>) in
if result != nil
{
imageArray.append(result.thumbnail().takeRetainedValue())
assetsArray.append(result)
countOne++
}
}
}
group.enumerateAssetsUsingBlock(assetBlock)
}发布于 2014-10-29 22:23:10
我遇到了存根代码返回节的数量为0的问题,因此我将其更改为1,至少对于我正在处理的示例:https://github.com/thegreatmichael/Albums-iOS8-Swift/blob/master/Albums/IAAlbumsViewController.swift#L66
https://stackoverflow.com/questions/25191579
复制相似问题