Получить локальный путь файла PHASset

У меня есть фотография, которую я хочу, чтобы мой пользователь мог делиться на Instagram, и мне нужно получить локальный каталог файлов фотографии.

Однако я получаю свои изображения как PHAsset (а не ALAsset, все остальные ответы, похоже, охватывают эту тему).

Глядя на документацию PHAsset, я не вижу переменную "локального каталога".

Знаете ли вы, как я могу получить путь к фотографии из ролика камеры пользователей, используя новую инфраструктуру ios8 Photo?

Вот мой код для загрузки последнего изображения в фотоальбом пользователей

public func loadLastPhotoIntoGalleryIcon()
{
    if(PHPhotoLibrary.authorizationStatus() != PHAuthorizationStatus.Authorized)
    {
        return
    }
    var fetchOptions:PHFetchOptions = PHFetchOptions()
    fetchOptions.sortDescriptors = [NSSortDescriptor(key: "creationDate", ascending: false)]
    var fetchResult:PHFetchResult = PHAsset.fetchAssetsWithMediaType(PHAssetMediaType.Image, options: fetchOptions)

    var lastAsset:PHAsset = fetchResult.firstObject as PHAsset

    var options:PHImageRequestOptions = PHImageRequestOptions()
    options.version = PHImageRequestOptionsVersion.Current
    PHImageManager.defaultManager().requestImageForAsset(lastAsset, targetSize: _view.getGalleryIconSize(), contentMode: PHImageContentMode.AspectFill, options: options)
    {
        (result, objects) -> Void in
        self._view.setGalleryIcon(result)
    }

}

Ответы

Ответ 1

Используйте вход для редактирования содержимого:

asset.requestContentEditingInputWithOptions(PHContentEditingInputRequestOptions()) { (input, _) in
    let url = input.fullSizeImageURL
}

Убедитесь, что ресурс PHAssetMediaType.Image или иначе он может упасть при распаковке необязательного.

Ответ 2

Да, вы должны преобразовать PHAset в ALAsset, тогда вы можете захватить URL-адрес от ALAsset. Что-то вроде этого: PHImageManager.defaultManager(). RequestAVAssetForVideo....

Ответ 3

Запросит информацию об активах для начала сеанса редактирования содержимого.

- (PHContentEditingInputRequestID)requestContentEditingInputWithOptions:(PHContentEditingInputRequestOptions *)options 
                                                      completionHandler:(void (^)(PHContentEditingInput *contentEditingInput, NSDictionary *info))completionHandler;

URL-адрес файла, который содержит полноразмерные данные изображения.

@property(readonly, copy) NSURL *fullSizeImageURL;