我需要删除iOS7上的系统照片,这是我的代码,但不能正常工作
Photos.framework仅支持上面的iOS8。
ALAssetsLibrary *lib = [ALAssetsLibrary new];
[lib enumerateGroupsWithTypes:ALAssetsGroupSavedPhotos usingBlock:^(ALAssetsGroup *group, BOOL *stop)
{
[group enumerateAssetsUsingBlock:^(ALAsset *asset, NSUInteger index, BOOL *stop)
{
if([[asset valueForProperty:ALAssetPropertyAssetURL] isEqual:assetURLs] )
{
[asset setImageData:nil metadata:nil completionBlock:^(NSURL *assetURL, NSError *error)
{
NSLog(@"assetURL : %@",assetURLs);
NSLog(@"Error : %@",error);
}];
}
}];
}
failureBlock:^(NSError *error)
{
NSLog(@"Error : %@",error);
}];
日志:
assetURL:assets-library://asset/asset.PNG?id = BAEEADAF-A1E6-4DBB-BD5A-07058B671AE2& ext = PNG
错误:错误域= ALAssetsLibraryErrorDomain代码= -3300"写入失败" UserInfo = 0x14edf940 {NSLocalizedDescription =写入失败,NSUnderlyingError = 0x14eb7580
"操作无法完成。 (ALAssetsLibraryErrorDomain错误-3300。)",NSLocalizedFailureReason =编写此资产时出现问题,因为写入失败。}
答案 0 :(得分:0)
新的Photos框架为以前存储的ALAsset URL提供了以下方法:
+ (PHFetchResult<PHAsset *> *)fetchAssetsWithALAssetURLs:(NSArray<NSURL *> *)assetURLs options:(PHFetchOptions *)options
来自Apple文档(https://developer.apple.com/library/ios/documentation/Photos/Reference/PHAsset_Class)
资产库框架在iOS 8.0及更高版本中已弃用,取而代之的是Photos框架。如果您的应用程序先前已存储来自ALAsset对象的URL,并且您需要检索相应的Photos框架对象,请使用此方法。