У меня есть приложение, область которого должна вести себя как фотогалерея. Пользователь выбирает изображение из своей камеры, и фотографии отображаются в UIImageViews. Я пытаюсь сохранить изображение, которое они выбирают. У меня 9 UIImageView, и проблема в том, что когда я выбираю разные фотографии для каждого UIImageView, закрываю и перезапускаю приложение, все UIImageViews остаются пустыми. Вот код, с которым я работаю:
- (void)viewWillAppear:(BOOL)animated
{
self.user = [NSUserDefaults standardUserDefaults];
NSMutableArray* array = [[self.user objectForKey:@"images"]mutableCopy];
while(array == nil)
{
[self.user setObject:[NSMutableArray arrayWithObject:@""] forKey:@"images"];
array = [[self.user objectForKey:@"images"]mutableCopy];
NSLog(@"%@",@"attempting to create an array to store the images in");
}
}
- (void)applicationDidEnterBackground:(UIApplication*)application {
NSLog(@"Image on didenterbackground: %@", imageView);
NSMutableArray* array = [NSMutableArray arrayWithObject:[NSData dataWithData:UIImagePNGRepresentation(imageView.image)]];
[array addObject:[NSData dataWithData:UIImagePNGRepresentation(imageView2.image)]];
[array addObject:[NSData dataWithData:UIImagePNGRepresentation(imageView3.image)]];
[array addObject:[NSData dataWithData:UIImagePNGRepresentation(imageView4.image)]];
[array addObject:[NSData dataWithData:UIImagePNGRepresentation(imageView5.image)]];
[array addObject:[NSData dataWithData:UIImagePNGRepresentation(imageView6.image)]];
[array addObject:[NSData dataWithData:UIImagePNGRepresentation(imageView7.image)]];
[array addObject:[NSData dataWithData:UIImagePNGRepresentation(imageView8.image)]];
[array addObject:[NSData dataWithData:UIImagePNGRepresentation(imageView9.image)]];
[self.user setObject:array forKey:@"images"];
}
- (void)viewDidLoad
{
NSMutableArray* array = [[self.user objectForKey:@"images"]mutableCopy];
imageView.image = [[UIImage alloc] initWithData:[array objectAtIndex:0]];
imageView2.image = [[UIImage alloc] initWithData:[array objectAtIndex:1]];
imageView3.image = [[UIImage alloc] initWithData:[array objectAtIndex:2]];
imageView4.image = [[UIImage alloc] initWithData:[array objectAtIndex:3]];
imageView5.image = [[UIImage alloc] initWithData:[array objectAtIndex:4]];
imageView6.image = [[UIImage alloc] initWithData:[array objectAtIndex:5]];
imageView7.image = [[UIImage alloc] initWithData:[array objectAtIndex:6]];
imageView8.image = [[UIImage alloc] initWithData:[array objectAtIndex:7]];
imageView9.image = [[UIImage alloc] initWithData:[array objectAtIndex:8]];
UIApplication *app = [UIApplication sharedApplication];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(applicationDidEnterBackground:)
name:UIApplicationDidEnterBackgroundNotification
object:app];
[super viewDidLoad];
}
- (void)viewDidUnload
{
self.user = nil;
}
Все выглядит хорошо для меня, поэтому я не могу понять, почему они не сохраняются / загружаются. Любая помощь очень ценится, спасибо!