我在尝试将UIImage保存到NSMutableDictionary时遇到了很大的困难,我正在尝试使用临时值将图像保存到此字典中(以防用户不想保存它们)。 NSMutableDictionary在viewDidLoad方法中初始化,如下所示:

     NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
     self.tempValues = dict;

而且我可以完美地存储UITextFields中的NSString,但是当我尝试通过UIImagePickerController设置图像时,它们在Dictionary中的值为nil。

这是给我带来问题的方法:
    - (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中的图像实际上为nil”。消息被打印到控制台。

如果我直接将此图像设置为对象的属性,然后将其保存在对象上(即,一旦用户按下“保存”,则),我可以完美地使用它们并正确保存它们,因此选择了image,shrunkenImage和listImage实际上保存一个图像。看起来像这样:
     object.fullImage = chosenImage;
     object.detailImage = shurnkenImage;
     object.tableImage = listImage;        //These work

有人知道我在做什么错吗?

最佳答案

我没有尝试过,但尝试以下类似的方法。

使用“字符串值”代替键值使用“数字”。

[tempValues setObject:shrunkenImage forKey:[NSString .....]];

关于objective-c - 将UIIImage对象设置为NSMutableDictionary对我不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9855855/

10-09 19:49