2017-03-01 89 views
0

我用相機捕獲圖像。捕獲後我想要得到的網址,以便我可以得到圖像名稱。我使用下面的代碼爲此。如何從ios中的PHPhotoLibrary獲取ref url?

PHObjectPlaceholder *assetholder; 
     PHPhotoLibrary *objPhoto = [PHPhotoLibrary sharedPhotoLibrary]; 
     [objPhoto performChanges:^{ 

     PHAssetChangeRequest *assets = [PHAssetChangeRequest creationRequestForAssetFromImage:info[UIImagePickerControllerOriginalImage]]; 
     PHObjectPlaceholder *assetholder = assets.placeholderForCreatedAsset; 

     } completionHandler:^(BOOL success, NSError * _Nullable error) { 


     }]; 

建議我如何獲取圖像的網址,以便我可以獲取圖像名稱。

+0

人相似 - 大BOUNTY - http://stackoverflow.com/questions/43791151/100-bounty-actually-get-the-filename-of-image-saved-to-photos-album-2017- ios10 – Fattie

回答

1
PHAsset *asset = nil; 
PHFetchOptions *fetchOptions = [[PHFetchOptions alloc] init]; 
fetchOptions.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"creationDate" ascending:YES]]; 
PHFetchResult *fetchResult = [PHAsset fetchAssetsWithMediaType:PHAssetMediaTypeImage options:fetchOptions]; 
if (fetchResult != nil && fetchResult.count > 0) { 
    // get last photo from Photos 
    asset = [fetchResult lastObject]; 
} 

if (asset) { 
    // get photo info from this asset 
    PHImageRequestOptions * imageRequestOptions = [[PHImageRequestOptions alloc] init]; 
    imageRequestOptions.synchronous = YES; 
    [[PHImageManager defaultManager] 
      requestImageDataForAsset:asset 
          options:imageRequestOptions 
         resultHandler:^(NSData *imageData, NSString *dataUTI, 
             UIImageOrientation orientation, 
             NSDictionary *info) 
    { 
      NSLog(@"info = %@", info); 
      if ([info objectForKey:@"PHImageFileURLKey"]) { 
       // path looks like this - 
       // file:///var/mobile/Media/DCIM/###APPLE/IMG_####.JPG 
       NSURL *path = [info objectForKey:@"PHImageFileURLKey"]; 
    }            
    }]; 
} 
+0

兄弟資產libraray在iOS9中被棄用。如果你研究我的問題,我沒有nsurl,因爲我從相機拍攝圖像而不是畫廊 – iOSGuy

+0

@iOSGuy更新答案你將獲得最後一張照片的名稱 –

+0

即使海報似乎不需要這個答案,但我確實需要。謝啦! – n4feng