我的问题真的很烦人。我正在创建拍摄照片并需要将它们保存到自定义画廊的应用程序。我找到了几个教程如何使用 AlAssetsLibrary 做到这一点,但有一个大问题......没有saveImage:toAlbum:withCompletionBlock:
方法。我曾经addAssetsGroupAlbumWithName:resultBlock:failureBlock:
创建自定义相册,但我无法将图像保存到这个画廊!我正在使用 iOS 6 iPhone 4。
有任何想法吗!?
我的问题真的很烦人。我正在创建拍摄照片并需要将它们保存到自定义画廊的应用程序。我找到了几个教程如何使用 AlAssetsLibrary 做到这一点,但有一个大问题......没有saveImage:toAlbum:withCompletionBlock:
方法。我曾经addAssetsGroupAlbumWithName:resultBlock:failureBlock:
创建自定义相册,但我无法将图像保存到这个画廊!我正在使用 iOS 6 iPhone 4。
有任何想法吗!?
您在问题中提到的方法saveImage:toAlbum:withCompletionBlock
不是ALAssetsLibrary的一部分。这个方法写在ALAssetLibary 的 category 中。您必须在类中导入类别才能使用该方法。
要了解有关目标 C 类别的更多信息,请查看开发人员参考。
看这里:
http://www.touch-code-magazine.com/ios5-saving-photos-in-custom-photo-album-category-for-download/
这里有一个 Stackoverflow 线程:Save Photos to Custom Album in iPhones Photo Library
如果您使用的是 AssetsLibrary,则可以编写此代码
- (void) actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
{
UIImagePickerController *imagePicker;
if (buttonIndex < 2)
{
self.library = [[[ALAssetsLibrary alloc] init] autorelease];
self.imageEditor = [[[DemoImageEditor alloc] initWithNibName:@"DemoImageEditor" bundle:nil] autorelease];
self.imageEditor.doneCallback = ^(UIImage *editedImage, BOOL canceled){
if(!canceled)
{
anotherImage = true;
NSString *imageName;
imageName =@"Abc.jpg";
UIImageWriteToSavedPhotosAlbum(editedImage, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);
editedImage = [self scaleImage:editedImage toSize:CGSizeMake(600,600)];
[[NSUserDefaults standardUserDefaults] setObject:UIImagePNGRepresentation(editedImage)forKey:@"image"];
}
- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo
{
UIAlertView *alert;
if (error)
alert = [[UIAlertView alloc] initWithTitle:@"Error"
message:@"Unable to save image to Photo Album."
delegate:self cancelButtonTitle:@"Ok"
otherButtonTitles:nil];
else
alert = [[UIAlertView alloc] initWithTitle:@"Success"
message:@"Image saved to Photo Album."
delegate:self cancelButtonTitle:@"Ok"
otherButtonTitles:nil];
[alert release];
}
它会解决你的情况。