Objective c 使用iOS 8上的照片框架查找(照片库)iOS设备内照片和视频的大小

Objective c 使用iOS 8上的照片框架查找(照片库)iOS设备内照片和视频的大小,objective-c,ios9,photos,photosframework,assetslibrary,Objective C,Ios9,Photos,Photosframework,Assetslibrary,在iOS 7之前,我们一直在使用资产库框架获取iOS设备中照片和视频的总大小,请看这里: 任何人都可以帮助我做同样的使用照片框架作为资产库框架是不赞成的。另外,如果有大量照片,如何以更快的方式计算总大小。 您可以在此应用程序中看到: 在这里,如果您转到“更多”>“磁盘”,您可以看到开发人员正在计算2秒钟内的总照片大小和视频大小。我怎样才能做到这一点?在Objective-C.用户照片资产(我尚未使用,但这是IOS 8要求)或已弃用但仍在使用当前版本的ALASSET中,这将为您提供文件信息。使用

在iOS 7之前,我们一直在使用资产库框架获取iOS设备中照片和视频的总大小,请看这里:

任何人都可以帮助我做同样的使用照片框架作为资产库框架是不赞成的。另外,如果有大量照片,如何以更快的方式计算总大小。 您可以在此应用程序中看到: 在这里,如果您转到“更多”>“磁盘”,您可以看到开发人员正在计算2秒钟内的总照片大小和视频大小。我怎样才能做到这一点?在Objective-C.

用户照片资产(我尚未使用,但这是IOS 8要求)或已弃用但仍在使用当前版本的ALASSET中,这将为您提供文件信息。

使用这些:

- (NSUInteger)updateVideoCount
{
    ALAuthorizationStatus status = [ALAssetsLibrary authorizationStatus];
    if (status==ALAuthorizationStatusDenied) {
        [self goToSettingsAlert];
    }
videoCount = 0;
totalVideoSize = 0;

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

[assetLibrary enumerateGroupsWithTypes:ALAssetsGroupAll usingBlock:^(ALAssetsGroup *group, BOOL *stop) {
    [group setAssetsFilter:[ALAssetsFilter allVideos]];
    [group enumerateAssetsUsingBlock:^(ALAsset *asset, NSUInteger index, BOOL *stop) {
        if (asset)
        {
            NSString *type = [asset  valueForProperty:ALAssetPropertyType];
            if ([type isEqualToString:ALAssetTypeVideo])
            {
                videoCount++;

                ALAssetRepresentation *rep = [asset defaultRepresentation];
                totalVideoSize += rep.size;
            }

        }
        else
        {

        }
    }];
    if(group==nil)
    {
        [self loadTable];
        descTable.hidden = NO;
        [descTable reloadData];
    }
} failureBlock:^(NSError *error) {
}];

return 0;
}

- (NSUInteger)updatePictureCount
{
    photoCount = 0;
    totalPictureSize = 0;

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

    [assetLibrary enumerateGroupsWithTypes:ALAssetsGroupAll usingBlock:^(ALAssetsGroup *group, BOOL *stop) {
        [group setAssetsFilter:[ALAssetsFilter allPhotos]];
        [group enumerateAssetsUsingBlock:^(ALAsset *asset, NSUInteger index, BOOL *stop) {
            if (asset)
            {
                NSString *type = [asset  valueForProperty:ALAssetPropertyType];
                if ([type isEqualToString:ALAssetTypePhoto])
                {
                    photoCount++;

                    ALAssetRepresentation *rep = [asset defaultRepresentation];
                    totalPictureSize += rep.size;
                }

            }

            else
            {

            }
        }];
        if(group==nil)
        {

            [self loadTable];
            descTable.hidden = NO;
            [descTable reloadData];
        }
    } failureBlock:^(NSError *error) {

    }];

    return 0;
}