Мне довольно трудно пытаться сохранить UIImage в NSMutableDictionary, я пытаюсь сохранить изображение в этот словарь с временными значениями (в случае, если пользователь не хочет их сохранять). NSMutableDictionary инициализируется в методе viewDidLoad следующим образом:
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
self.tempValues = dict;
И я прекрасно могу хранить NSStrings из UITextFields, но когда я попытался установить изображения из UIImagePickerController, они имеют нулевое значение в Словаре.
Вот метод, который доставляет мне проблемы:
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
UIImage *chosenImage = [info objectForKey:UIImagePickerControllerEditedImage];
UIImage *shrunkenImage = shrinkImage(chosenImage, CGSizeMake(115, 115));
UIImage *listImage = shrinkImage(shrunkenImage, CGSizeMake(44, 44));
[tempValues setObject:shrunkenImage forKey:[NSNumber numberWithInt:kDetailImageIndex]];
[tempValues setObject:chosenImage forKey:[NSNumber numberWithInt:kFullImageIndex]];
[tempValues setObject:listImage forKey:[NSNumber numberWithInt:kTableImageIndex]];
if ([tempValues objectForKey:[NSNumber numberWithInt:kTableImageIndex]] != nil) {
NSLog(@"The image exists in tempValues");
} else {
NSLog(@"The image in tempValues is in fact nil.");
}
[picker dismissModalViewControllerAnimated:YES];
}
Когда это выполняется, @ "изображение в tempValues фактически равно нулю." сообщение выводится на консоль ..
Если я установлю эти изображения непосредственно на свойство объекта, на котором они будут позже сохранены (то есть, когда пользователь нажмет «Сохранить»), я смогу отлично с ними работать, и они будут сохранены правильно, поэтому selectedImage , shrunkenImage и listImage на самом деле содержат изображение. Это будет выглядеть примерно так:
object.fullImage = chosenImage;
object.detailImage = shurnkenImage;
object.tableImage = listImage; //These work
Кто-нибудь знает, что я делаю не так?