应用程序休眠/恢复后,ImageView.image = nil崩溃

时间:2011-09-03 09:09:07

标签: iphone objective-c crash uiimageview uiimage

我的应用中的一个观点有一种方法来设置它的'默认'布局 - setDefaultView。在这个方法中,我循环遍历subViews,如果是一个ImageView,它将图像设置为nil。

当我的应用程序最初从XCode启动时,这可以正常工作。但是,当我通过按下主页按钮来休眠我的应用程序,然后返回应用程序并触发setDefaultView,它会在此方法中崩溃,其中图像设置为nil。

有关这里可能出现的问题的任何建议吗?

源代码:

-(void)setDefaultView {

// Hide all equals labels and images; set all images to nil
for (UIView *view in [secondScrollerView subviews]) {

    if ([view isKindOfClass:[UILabel class]]) {

        UILabel *label = (UILabel *)view;

        if ([label.text isEqualToString:@"="]) {
            label.hidden = YES;
        }
    }

    if ([view isKindOfClass:[UIImageView class]]) {

        UIImageView *imageView = (UIImageView *)view;
        imageView.hidden = YES;

        imageView.image = nil;    // Crashes here
    }
}

// do other stuff here...
}

1 个答案:

答案 0 :(得分:0)

最有可能是您将imageView.image设置为自动释放的对象。 imageView.image = nil;行将释放旧图像,如果已经发布,则会出现问题。