我正在尝试将UIImage保存到app delegate。当我第一次加载UIViewController时,它返回UIImage(参见第一个屏幕截图)。
救救我!被困在这里将近2天。
但是当我重定向回那个控制器时,UIImage变成了NSNumber。 (见第二个屏幕截图)
在我离开控制器之前,我将图像设置为app delegate,如下所示
UIGraphicsBeginImageContextWithOptions(self.imageView.frame.size,YES, 0.0);
[self.imageView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *resultingImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
del.getImage = resultingImage;
答案 0 :(得分:0)
使用调试器最容易解决此问题。首先,正如评论所说,将属性名称更改为myImage。然后,在你的UIViewController类中,提供你自己的setter:
- (void)setMyImage:(UIImage *)myImage
{
NSLog(@"Image class: %@", NSStringFromClass([myImage class]));
if([myImage isKindOfClass:[NSNumber class]]) {
NSLog(@"YIKES: a number!");
}
_myImage = myImage; // assumes ARC
}
在第二个NSLog或两者上放置一个断点。当你点击第二个断点时,查看调用堆栈,你会发现谁在设置它。