use*_*119 6 assets assetslibrary alasset alassetslibrary ios5
我使用IOS AssetsLibrary从我的应用程序创建了"照片专辑".
读取ALAssetsLibrary,ALAssetsGroup和ALAsset文档,我看到了"addAsset","addAssetsGroupAlbumWithName"的方法.
有没有办法删除PROGRAMMATICYY我的ALAssetsGroup和ALAsset.(属性'editable'假设为TRUE,因为我创建了这个数据).
eva*_*hin 14
您只能删除应用程序使用文档API [ALAsset setImageData:metadata:completionBlock:] 创建的 ALAsset(但我没有找到任何删除ALAssetGroup的API).
1).在您的项目中添加图像"photo.jpg"2).将图像保存到资产库:
ALAssetsLibrary *lib = [ALAssetsLibrary new];
UIImage *image = [UIImage imageNamed:@"photo.jpg"];
[lib writeImageToSavedPhotosAlbum:image.CGImage metadata:@{} completionBlock:^(NSURL *assetURL, NSError *error) {
NSLog(@"Write image %@ to asset library. (Error %@)", assetURL, error);
}];
Run Code Online (Sandbox Code Playgroud)
3).转到默认图库,您将在"已保存的照片"相册中找到photo.jpg.
4).从资产库中删除此图片:
ALAssetsLibrary *lib = [ALAssetsLibrary new];
[lib enumerateGroupsWithTypes:ALAssetsGroupSavedPhotos usingBlock:^(ALAssetsGroup *group, BOOL *stop) {
[group enumerateAssetsUsingBlock:^(ALAsset *asset, NSUInteger index, BOOL *stop) {
if(asset.isEditable) {
[asset setImageData:nil metadata:nil completionBlock:^(NSURL *assetURL, NSError *error) {
NSLog(@"Asset url %@ should be deleted. (Error %@)", assetURL, error);
}];
}
}];
} failureBlock:^(NSError *error) {
}];
Run Code Online (Sandbox Code Playgroud)
5).转到默认图库,您会发现photo.jpg已被删除.
在ios8中使用照片框架可能会删除照片
请查看Photos Framework的文档
要删除资产,请参阅PHAssetChangeRequest
+ (void)deleteAssets:(id<NSFastEnumeration>)assets
Run Code Online (Sandbox Code Playgroud)
where assets是PHAsset要删除的对象数组.
要删除集合,请参阅PHAssetCollectionChangeRequest
+ (void)deleteAssetCollections:(id<NSFastEnumeration>)assetCollections
Run Code Online (Sandbox Code Playgroud)
小智 5
正如Ted所说,现在可以在iOS 8中使用“照片”服务。其实很干净。您需要向照相馆提交变更请求。这是一个例子。
[[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{
[PHAssetChangeRequest deleteAssets:arrayOfPHAssets];
} completionHandler:^(BOOL success, NSError *error) {
NSLog(@"Finished deleting asset. %@", (success ? @"Success." : error));
}];
Run Code Online (Sandbox Code Playgroud)
确保已导入照片,并获得了用户的授权。(您可能确实已经显示了图像)
PHAssetchangeRequest-deleteAssets https://developer.apple.com/library/prerelease/ios/documentation/Photos/Reference/PHAssetChangeRequest_Class/index.html#//apple_ref/occ/clm/PHAssetChangeRequest/deleteAssets:PHPhotoLibrary类-authorizationStatus https:// /developer.apple.com/library/ios/documentation/Photos/Reference/PHPhotoLibrary_Class/#//apple_ref/occ/clm/PHPhotoLibrary/authorizationStatus
| 归档时间: |
|
| 查看次数: |
9305 次 |
| 最近记录: |