我的应用程序中的其中一个 View 具有一种方法来设置其“默认”布局-setDefaultView。在此方法中,我遍历了 subview ,如果其中一个是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...
}

最佳答案

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

09-11 17:50
查看更多