2017-05-23 4 views
1

私のアプリでは、編集した画像を使ってギャラリーのカスタムフォルダに "Fab"という名前を付けて保存しました。今、その画像をフォルダから削除する何かがありますか?私は別の解決策を見つけましたが、資産のURLが必要です。私はPhotosフレームワークを使用して、削除のために特定のイメージのアセットURLを取得する方法を教えてください。カスタムアルバムから画像を削除PHPhotoLibraryの目的C

+0

あなたはいくつかの助けが必要なあなたの問題を解決しましたか? –

+0

ヘルプが高く評価されています。 –

+0

自分のプロジェクトでこのコードを使用しているので、私の答えをチェックして問題を解決してください。 –

答えて

2
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"); 

       } 
}]; 

私のコードに関する質問はコメントを入力してください。 ハッピーコーディング。

+1

宝石のような仕事ではありません。 Thanx –

1

は、保存された画像のURLを返しますコード

ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init]; 

[library writeImageToSavedPhotosAlbum:[viewImage CGImage] orientation:(ALAssetOrientation)[viewImage imageOrientation] completionBlock:^(NSURL *assetURL, NSError *error){ 
    if (error) { 
     NSLog(@"error"); 
    } else { 
      NSLog(@"url %@", assetURL); 
    } 
}]; 

の下にこれを試してみてください。

+0

ALAssetsLibraryは推奨されていません。私はPHAssetを使いました。だから、答えは –

関連する問題