You can do it sneakily† using the undocumented PHAsset.ALAssetURL
property, but I'm looking for something documented.
† In Objective-C, this will help
@interface PHAsset (Sneaky)
@property (nonatomic, readonly) NSURL *ALAssetURL;
@end
Create the assetURL by leveraging the localidentifier of the PHAsset
.
Example:
PHAsset.localidentifier
returns 91B1C271-C617-49CE-A074-E391BA7F843F/L0/001
Now take the 32 first characters to build the assetURL, like:
assets-library://asset/asset.JPG?id=91B1C271-C617-49CE-A074-E391BA7F843F&ext=JPG
You might change the extension JPG
depending on the UTI of the asset (requestImageDataForAsset
returns the UTI), but in my testing the extensions of the assetURL seems to be ignored anyhow.