【发布时间】:2010-11-01 09:21:25
【问题描述】:
我创建了一个包含图像库的应用程序。我已将图像导入到 Xcode 中的资源文件夹中,并且当前正在加载应用程序时将它们加载到 appDelegate 中的数组中。每次都在发生这种情况。我现在担心随着库的增长,应用程序将耗尽内存。有没有更好的方法来加载这些?
结构是
图书馆>分类>图片列表>图片
我有一个名为mainLibrary 的 NSMutableArray,然后我为每个类别添加另一个 nsmutablearray。例如
NSMutableArray *arrHome = [[NSMutableArray alloc] initWithObjects: @"Home",
[NSDictionary dictionaryWithObjectsAndKeys: [NSString stringWithFormat:@"%@/%@", resourcePath, @"alarm_clock.png"], @"image_path", @"Alarm Clock", @"title", nil],
[NSDictionary dictionaryWithObjectsAndKeys: [NSString stringWithFormat:@"%@/%@", resourcePath, @"bathtub.png"], @"image_path",@"Bathtub", @"title", nil],
nil];
[mainLibrary addObject: arrHome];
以上是“家庭”类别,仅包含两张图片。对于其他类别,我为每个图像设置了 NSDictionary 行——每个类别最多可以有 100 个图像。
如果我将 50mb+ 的图像加载到数组中,这是否会导致应用程序变得无响应 - 或者很可能会因为每个应用程序使用更多的 24mb (ish) 限额而导致崩溃??
我想知道是否应该执行上述代码并在选择了一个类别后将其读入数组 - 但这可能会导致它对用户停止。
有什么想法吗?!
ps) 我还需要考虑 Retina 显示屏。拥有 600 多张图像,复制它们意味着我的二进制大小会飞涨!!
【问题讨论】:
标签: iphone memory ios4 nsmutablearray nsdictionary