enumerateAssetsWithOptions返回alasset nil

时间:2014-10-17 19:04:01

标签: ios objective-c alassetslibrary

我正在使用此代码获取用户ALAssetsLibrary

  ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];

    // Enumerate just the photos and videos group by using ALAssetsGroupSavedPhotos.
    [library enumerateGroupsWithTypes:ALAssetsGroupSavedPhotos usingBlock:^(ALAssetsGroup *group, BOOL *stop) {
        // Within the group enumeration block, filter to enumerate just photos.
        [group setAssetsFilter:[ALAssetsFilter allPhotos]];

        // Chooses the photo at the last index
        [group enumerateAssetsWithOptions:NSEnumerationReverse usingBlock:^(ALAsset *alAsset, NSUInteger index, BOOL *innerStop) {

            // The end of the enumeration is signaled by asset == nil.
            if (alAsset) {

alasset不时返回的问题我不知道为什么。我尝试过的大多数手机都运行良好,但出于某种原因,其他手机的气囊只是零返回。

1 个答案:

答案 0 :(得分:1)

iOS8推出了新的Photos Framework。以前存储在设备上的许多资产现在都存储在iCloud中(即不在设备上)。照片框架旨在与这些资产(设备上可能存在或可能不存在的资产)进行交互时使用。

我的猜测是ALAssetLibrary对于未在设备上本地存储的资产返回nil。因此,您遇到的问题。

我最近听说iOS 8.1回滚了这个与iCloud相关的变化,虽然我无法验证自己。

希望这有帮助。