Próbuję utworzyć niestandardowy album w bibliotece zdjęć iPhone'a, a następnie zapisać zdjęcia zrobione aparatem lub wybrać z aparatu Camera Roll do tego albumu niestandardowy album. Mogę z powodzeniem utworzyć album, ale zdjęcia nie są tam zapisywane, zamiast tego są zapisywane na symulatorze. Album Saved Photos ... Nie wiem, jak powiedzieć UIImageWriteToSavedPhotosAlbum
, aby zapisać do nowego albumu, który właśnie utworzyłem przy użyciu addAssetsGroupAlbumWithName
...Zapisywanie zdjęć w niestandardowym albumie w iPhones Photo Library
Oto kod mam tak daleko - mam wycięte z kilku odcinków, aby moje przykład kodu krótki ...
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
NSString *mediaType = [info objectForKey:UIImagePickerControllerMediaType];
if([mediaType isEqualToString:(__bridge NSString *)kUTTypeImage])
{
// pull GPS information from photos metadata using ALAssetsLibrary
void (^ALAssetsLibraryAssetForURLResultBlock)(ALAsset *) = ^(ALAsset *asset)
{
// code snipped out
};
NSURL *assetURL = [info objectForKey:UIImagePickerControllerReferenceURL];
ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
[library assetForURL:assetURL
resultBlock:ALAssetsLibraryAssetForURLResultBlock
failureBlock:^(NSError *error)
{
// code snipped out
}];
// getimage from imagePicker and resize it to the max size of the iPhone screen
UIImage *originalImage = [info objectForKey:UIImagePickerControllerOriginalImage];
UIImage *resizedImage = [util_ createThumbnailForImage:originalImage thumbnailSize:[util_ determineIPhoneScreenSize]];
NSData *imageData = UIImagePNGRepresentation(resizedImage);
// code snipped out
// code snipped out
// code snipped out
// code snipped out
// code snipped out
// code snipped out
// create a new album called "My Apps Photos"
[library addAssetsGroupAlbumWithName:@"My Apps Photos"
resultBlock:^(ALAssetsGroup *group)
{
NSLog(@"in addAssetsGroupAlbumWithName resultBlock");
// save file to album
UIImageWriteToSavedPhotosAlbum(resizedImage, self, nil, nil);
}
failureBlock:^(NSError *error)
{
NSLog(@"in addAssetsGroupAlbumWithName failureBlock");
}
];
}
}
więc ... Jak mówiłem, to tworzy nowy album, ale nie zapisuje tam zdjęcia. Jak mam powiedzieć, aby zapisać na nowym albumie? Być może brzmi nie używać UIImageWriteToSavedPhotosAlbum
?
Uwaga: Używam Xcode 4.3.2, iOS 5.1 i Łuk
pojawia się problem z naszym kodzie powodując BAD DOSTĘPU EXC na „[ groupToAddTo addAsset: asset]; ' - Czy masz jakieś pomysły? Pozdrawiam .. – theiOSDude
Jedną z możliwych przyczyn jest to, że twoja zmienna biblioteczna nie jest już ważna - musisz mieć swoją bibliotekę tak długo, jak masz dostęp do obiektów, które przez nią wygenerowałeś; tzn. nie można pozwolić, aby biblioteka otrzymała dealloc'd, a następnie spróbuj uruchomić selektor w groupToAddTo ... Zazwyczaj sprawiam, że biblioteka jest właściwością i zainicjuję ją w viewDidLoad. –
Odpowiedź od Fernando pracowała dla mnie w iOS 6.0.1 –