ALAssetsLibrary gibt dieselben Assets zurück, nachdem ein neues Foto zum Kamera-Rollobjektiv hinzugefügt wurde. C
Ich benutzeALAssetsLibrary
Auflisten der ersten 30 Fotos in meinen gespeicherten Fotos. Ich habe eine Immobilie in erstelltAppDelegate
Zugang zu habenALAssets
immer wenn ich will, weil lebenslang vonALAssetsLibrary
Instanz ist gebunden anALAssets
Lebenszeit. Hier ist mein Code:
if(!_savedAssets) _savedAssets = [[NSMutableArray alloc] init];
else [_savedAssets removeAllObjects];
if(appDelegate.library)
{
[appDelegate.library release];
[appDelegate setLibrary:nil];
}
appDelegate.library = [ALAssetsLibrary new];
__block int count = 0;
[appDelegate.library enumerateGroupsWithTypes:ALAssetsGroupSavedPhotos usingBlock:^(ALAssetsGroup *group, BOOL *stop) {
NSLog(@"%d",group.numberOfAssets);
if(count>30) *stop = YES;
[group enumerateAssetsWithOptions:NSEnumerationReverse usingBlock:^(ALAsset *result, NSUInteger index, BOOL *needToStop) {
NSLog(@"%d", index);
if(count<30 && result)
{
UIImage *image = [UIImage imageWithCGImage:result.thumbnail];
[_savedAssets addObject:result];
[self performSelectorOnMainThread:@selector(imageManipulation:) withObject:image waitUntilDone:NO];
count++;
}
else
*needToStop = YES;
}];
} failureBlock:^(NSError *error) {
NSLog(@"%@",error.description);
}];
Wie Sie sehen, füge ich die ersten 30 hinzuALAssets
zu meinemNSMutableArray
, um auf ein Miniaturbild oder ein Vollbild zuzugreifen. Nachdem meine App ein Foto erstellt hat, speichere ich dieses Foto auf der Kamera und versuche, mein Foto neu zu ladenALAssets
mit dem gleichen Code wie beim ersten Laden. Vor dem erneuten Laden entferne ich alle Objekte ausNSMutableArray
und NeuinitialisierungALAssetsLibrary
. Aber das hilft nicht. Jedes Mal bekomme ich das gleicheALAssets
. Ich bekomme neuALAssets
erst nach dem neuladen app. Wie lade ich nach?ALAssets
ohne App neu zu laden?