在 iOS 7 之前,我们使用 Assets Library Framework 来获取 iOS 设备中照片和视频的总大小,请看这里: 如何在 iOS 中查找照片库中的图像和视频的总大小
任何人都可以使用照片框架帮助我做同样的事情,因为资产库框架已被弃用。另外,如果以更快的方式有大量照片,我如何计算总大小。您可以在此应用程序中看到: iPhone 版 MobiShield如果您转到更多 > 磁盘,您可以看到开发人员正在计算 2 秒内的总照片大小和视频大小。我怎样才能做到这一点?在目标 - C。
在 iOS 7 之前,我们使用 Assets Library Framework 来获取 iOS 设备中照片和视频的总大小,请看这里: 如何在 iOS 中查找照片库中的图像和视频的总大小
任何人都可以使用照片框架帮助我做同样的事情,因为资产库框架已被弃用。另外,如果以更快的方式有大量照片,我如何计算总大小。您可以在此应用程序中看到: iPhone 版 MobiShield如果您转到更多 > 磁盘,您可以看到开发人员正在计算 2 秒内的总照片大小和视频大小。我怎样才能做到这一点?在目标 - C。
使用这些:
- (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;
}
用户照片资产(我尚未使用,但这是 IOS 8 要求)或已弃用但仍可使用当前版本的 ALASSETS,这将为您提供文件信息。