【问题标题】:Find the size of photos and videos inside (Photo Library) iOS device using Photos Framework on iOS 8在 iOS 8 上使用 Photos Framework 查找 iOS 设备内部(照片库)的照片和视频的大小
【发布时间】:2016-03-10 05:11:23
【问题描述】:
【问题讨论】:
标签:
objective-c
ios9
photos
photosframework
assetslibrary
【解决方案1】:
用户照片资产(我尚未使用,但这是 IOS 8 要求)或已弃用但仍可使用当前版本的 ALASSETS,这将为您提供文件信息。
【解决方案2】:
使用这些:
- (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;
}