0

我正在尝试将 UIImage 保存到应用程序委托。当我第一次加载 UIViewController 时,它返回 UIImage(见第一个屏幕截图)。

帮我 !在这里卡了将近 2 天。

在此处输入图像描述

但是当我重定向回那个控制器时,UIImage 变成了 NSNumber。(见第二个屏幕截图) 在此处输入图像描述

在我离开控制器之前,我将图像设置为应用程序委托,如下所示

UIGraphicsBeginImageContextWithOptions(self.imageView.frame.size,YES, 0.0);
[self.imageView.layer renderInContext:UIGraphicsGetCurrentContext()];

UIImage *resultingImage = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

del.getImage = resultingImage;
4

1 回答 1

0

使用调试器最容易解决此问题。首先,正如评论所说,将属性名称更改为 myImage。然后,在您的 UIViewController 类中,为您提供自己的设置器:

- (void)setMyImage:(UIImage *)myImage
{
    NSLog(@"Image class: %@", NSStringFromClass([myImage class]));
    if([myImage isKindOfClass:[NSNumber class]]) {
        NSLog(@"YIKES: a number!");
    }
    _myImage = myImage; // assumes ARC
}

在第二个 NSLog 上放置一个断点,或两者兼而有之。当你遇到第二个断点时,查看调用堆栈,你会发现是谁在设置它。

于 2013-04-11T12:22:24.173 回答