0

首先让我解释我正在尝试做什么。 我有一个表格视图,就像一堆“相册”一样工作。每个单元格将用户重定向到相应的集合视图,我在这里加载图像。 现在,我让使用相机用户拍摄照片,而我使用的图像拾取控制器,然后我把它保存在一个属性是这样的:将从相机拍摄的图像保存到NSMutableArray中

[[[Album sharedInstance].albumList valueForKey:@"nameOfFolder"] addObject:info[UIImagePickerControllerOriginalImage]]; 

的“albumList”是的NSMutableDictionary,并且每个键(表示一个文件夹)的值都是一个NSMutableArray。在拍摄每张新照片后,我重新加载收藏视图并将图片放置在那里。 但是,正如所料,这样我会得到一个内存警告,主要是因为我将原始图像保存在数组中,我猜。

所以我的问题是,什么是最好的方式来实现这一目标? 我想过将图像的URL保存在数组中,然后当我需要它时,我会用URL检索这些图像并在集合视图中显示它们。 另一个想法是直接将文件保存到文档中,而不需要数组,但我认为每次我检索并显示图像时都会有太多处理。

那么,谁知道我应该采取哪种方法? 在此先感谢!

+0

附加拍摄的图像数据与他们的键,然后将该字典添加到数组中。这是在数组中添加图像的最佳方式。 –

回答

0

我建议您将相机图像剪辑为缩略图,将原始图像和缩略图保存在文档目录中。检索表视图和集合视图的缩略图。检索图像视图的原始图像以获取图像细节。

大图像可能会降低应用程序的性能,因此请避免使用大图像并将其显示在小框中。

顺便说一句,从文档目录加载小图像比大图像快得多。

0

从我的角度来看,您可以直接将图像保存到文档中,而不需要数组。您可以开始将图像保存在后台线程的文档中。

这将需要处理时间,但您不会在应用程序中遇到任何内存问题。

-1

创建将是NSMutableArray的副本的属性,这样你直接更新数组,但没有,它不应该创建一个存储问题的NSMutableDictionary

- (NSArray *)allAlbumList { return [self.albumList copy]; //return [NSArray arrayWithArray:self.listItems];}

相关问题