PHAsset *tempPhasset = [_arrImageForAssetCameraRoll objectAtIndex:index]; // here pass your PHasset that you want to delete . NSString *localStr=tempPhasset.localIdentifier; NSRange range = [localStr rangeOfString:@"/"]; NSString *newString = [localStr substringToIndex:range.location]; NSString *appendedString=[NSString stringWithFormat:@"%@%@%@",@"assets-library://asset/asset.JPG?id=",newString,@"&ext=JPG"]; NSLog(@"%@ phasset ",appendedString); NSURL *deleteurl = [NSURL URLWithString:appendedString]; NSArray *arrDelete = [[NSArray alloc] initWithObjects:deleteurl , nil]; PHFetchResult *asset = [PHAsset fetchAssetsWithALAssetURLs:arrDelete options:nil]; [asset enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { NSLog(@"%@",[obj class]); [[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{ BOOL req = [obj canPerformEditOperation:PHAssetEditOperationDelete]; if (req) { NSLog(@"true"); [PHAssetChangeRequest deleteAssets:@[obj]]; } } completionHandler:^(BOOL success, NSError *error) { NSLog(@"Finished Delete asset. %@", (success ? @"Success." : error)); if (success) { NSLog(@"delete successfully"); }else{ NSLog(@"delete Cancel"); } }];
Any requests for my code then put a comment. Happy coding.
source share