代码之家  ›  专栏  ›  技术社区  ›  Nnp

图像分配问题

  •  0
  • Nnp  · 技术社区  · 16 年前

    我在uiscrollview中有3个uiimages,我正在用以下方式初始化这些图像:

    UIImage *dimage = [[UIImage alloc] initWithData:data];
    

    其中,data是从url请求获取的nsdata。在这之后,我将缓存图像。 当我检查内存分配时,3个图像每个占用472 kb,并且分配是由Coregraphics库中的“img_data_lock”请求的。 当我检查磁盘缓存中该图像的大小时,每个大小为230KB。

    我不知道怎么才能腾出更多的空间。我希望我的问题是清楚的。

    1 回复  |  直到 16 年前
        1
  •  0
  •   TechZen    16 年前

    不知道您在看什么“磁盘缓存”,但内存和磁盘使用只是弱相关。用于创建uiimage的数据只是对象实际使用的数据的一部分。这意味着活动对象将比创建它的数据使用更多的内存。

    更为复杂的是,uiimage会在内存不足的情况下清除图像数据,因此uiimage对象的大小在其存在过程中会发生很大的变化。