I am trying to develop an application which would download images (from a photography site) and create a ALAsset for each image and then place them under a new ALAssetsGroup.
I am able to create a new Album (ALAssetsGroup) and download data from the website. However i am a bit stuck on how to create the new ALAsset.
I have tried is as follows
ALAsset *asset = [[[ALAsset alloc] init] autorelease];
NSDictionary *metadata = [NSDictionary dictionaryWithObjectsAndKeys:p.id, @"id", p.thumbnail_url, @"thumbnail_url", p.photo_url, @"photo_url", nil];
[asset setImageData:data metadata:metadata completionBlock:^(NSURL *assetURL, NSError *error) {
ESLog(@"Asset %@ created error:%@", assetURL, error);
[group addAsset:asset];
}];
However I get prints where both the assetURL and error is empty.
2012-04-15 02:58:06.850 XXXXXX.com[5966:c607] Asset (null) created error:(null)
It would be great if someone can suggest how i can create a new Asset in an Album
you cant create a new ALAsset like that. What you need to do is save you image data to the Photo-Library using the method:
- (void)writeImageDataToSavedPhotosAlbum:(NSData *)imageData metadata:(NSDictionary *)metadata completionBlock:(ALAssetsLibraryWriteImageCompletionBlock)completionBlock
The completion block will return the NSURL for the new created asset. Using the method
- (void)assetForURL:(NSURL *)assetURL resultBlock:(ALAssetsLibraryAssetForURLResultBlock)resultBlock failureBlock:(ALAssetsLibraryAccessFailureBlock)failureBlock
with the NSURL will return you the ALAsset instance of the newly created asset.
Cheers.
Hendrik
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With