我正在使用我之前多次使用的代码将图像加载到UIImageView
- (void)viewDidLoad {
[super viewDidLoad];
UIImage *img = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle]pathForResource:@"1" ofType:@"png"]];
[self.imgWeather setImage:img];
}
出于某种原因,当我点击[self.imgWeather setImage:img]时,我得到一个SIGABRT;
图像和UIImageView似乎初始化正确。
知道发生了什么事吗?
[编辑]
当我将setImage设置为nil时,似乎崩溃了。不好。我只是查看了stackTrace,可以看到'doesNotRecognizeSelector'异常:
#9 0x02554651 in objc_exception_throw ()
#10 0x0240842b in -[NSObject(NSObject) doesNotRecognizeSelector:] ()
#11 0x02378116 in ___forwarding___ ()
imgWeather被定义为:
@property (nonatomic, retain) IBOutlet UIImageView *imgWeather;
任何想法是什么意思?
答案 0 :(得分:2)
如果self.imgWeather为零 - 没有什么不好的事情会发生。我怀疑self.imgWeather不是nil但它不再是UIImageView而且你正在击中一个不同的对象或只是一些随机的内存块(可能它已被释放,你的应用程序可能存在内存问题)。
确实
[self.imgWeather setImage:Nil];
也会产生问题?
答案 1 :(得分:1)
@property (nonatomic, retain) IBOutlet UIImageView *imgWeather;
你的imgWeather是一个出路。确保它在IB中正确链接。
答案 2 :(得分:0)
我要做的第一件事是确保你的UIImageView对象被初始化。一种简单的方法就是添加一些代码来检查 nil 并使用结果在控制台上打印一行。
答案 3 :(得分:0)
我更喜欢这种语法:
[UIImage imageNamed:@"1.png"]
FWIW。试一试只是为了它。