在UIImageView中设置图像时崩溃

时间:2010-07-07 19:05:15

标签: objective-c iphone uiimageview

我正在使用我之前多次使用的代码将图像加载到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;

任何想法是什么意思?

4 个答案:

答案 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。试一试只是为了它。