【问题标题】:App crashes after download of 6th image下载第 6 张图片后应用程序崩溃
【发布时间】:2012-10-10 17:38:23
【问题描述】:

我有问题,需要帮助。 我有一张桌子,在单元格上我有图像的水平滚动。图片是从网上下载的。 当我下载第 6 张图片时,我的应用程序崩溃了。 对于异步上传,我使用https://github.com/rs/SDWebImage

  -(void) fastCreateImage
   {
int tempID = self.currentPageNow;
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 1.2f * NSEC_PER_SEC), dispatch_get_current_queue(), ^{
    if(tempID==self.currentPageNow)
    {
        NSUInteger objIdx = [self.imageViews indexOfObject: [NSNumber numberWithInt:tempID]];
        if(objIdx != NSNotFound) {
            NSLog(@"WAS CACHED!!!!!!");
        }
        else
        {
             UIImageView *myImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 193.5f)];

    NSString *urlInString =[NSString stringWithFormat:@"%@/uploads/gallery/hotels/%@",webSite,[self.urlGarbage objectAtIndex:self.currentPageNow]];
            SDWebImageManager *manager = [SDWebImageManager sharedManager];
            [manager downloadWithURL:[NSURL URLWithString:urlInString]
                            delegate:self
                             options:0
                             success:^(UIImage *image, BOOL cached)
             {
                 myImageView.image = image;
                 [[self.views objectAtIndex:tempID] addSubview:myImageView];
                 [self.imageViews addObject:[NSNumber numberWithInt:tempID]];
                 NSLog(@"LOADED IMG");
             }
                             failure:nil];
            [myImageView release];
        }


    }
});
 }

【问题讨论】:

  • 你的意思是下载而不是上传吗?你说“我的应用程序崩溃了”。什么样的崩溃?从控制台发布异常文本。您是否启用了 Zombies 进行调试?
  • 对不起,我的意思是下载图片。我收到消息收到内存警告。 NSZombieEnabled = YES,但我无法跟踪错误
  • mb 我应该使用 [manager release] 吗?
  • 如果您收到内存警告,可能是您正在下载的图像真的很大并且占用了太多内存,或者正在运行其他占用内存的应用程序(尝试重新启动您的设备)。不要释放manager,你正在使用一个只存在一次的单例实例(shared Manager)。在您的代码中查找对 alloc 的调用,并确保每个 alloc 都与 release 配对。
  • 您正在加载的图像有多大?它们的大小(以 kB 为单位)以及它们的维度(x、y 以像素为单位)是多少?

标签: iphone objective-c


【解决方案1】:

由于您收到内存警告,我猜您的图像太大而无法放入内存。一张图片最多占用你的内存width*height*4(取决于颜色深度)。计算每个图像的内存需求,看看这是否是问题所在。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-26
    • 1970-01-01
    相关资源
    最近更新 更多