【问题标题】:ImageView.image = nil crashing after app hibernated/resumedImageView.image = nil 在应用程序休眠/恢复后崩溃
【发布时间】:2011-09-03 17:32:42
【问题描述】:

我的应用程序中的一个视图有一种方法可以将其设置为“默认”布局 - setDefaultView。在这个方法中,我循环遍历子视图,如果其中一个是 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...
}

【问题讨论】:

  • 请在您将image 设置为imageView 的位置发布代码
  • Nekto - 您的评论足以让我找到问题所在。我正在释放 UIImage,即使它从未分配过。

标签: iphone objective-c crash uiimageview uiimage


【解决方案1】:

很可能是您将imageView.image 设置为自动释放的对象。 imageView.image = nil; 行会释放旧的镜像,如果已经释放了就会有问题。

【讨论】:

  • 谢谢 - 我已经手动发布了它。在 Nekto 对我原来的问题发表评论后发现了这个错误。
猜你喜欢
  • 2020-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-02
  • 1970-01-01
  • 2023-03-03
相关资源
最近更新 更多