此问题与显示表格视图时的最佳做法有关,因此如果有更好的方法来解决此问题而不是我提出的解决方案(在问题中),请告诉我。
我有一个表视图,其中包含一个包含在字典NSArray中的文本作为每个单元格文本的源。表视图还应在表格单元格中显示UIImage。每个单元格都有一个文本,但有些单元格可能不包含UIImage。
解决此问题的最佳方法是什么?
目前,如果UIImage可用于文本,则将其设置为词典中的一个键,该键还包含文本并显示。在内存管理方面这是一个不好的方法吗?
或者,使用两个彼此对应的NSArray是有意义的(例如,它们都具有相同数量的元素,并且第一个数组的索引1处的对象将对应于第二个数组的索引1处的对象并且只是在第二个(图像)数组中保存一个NSNull或类似的东西,它可能并不总是有一个需要显示的对象?
这就是全部,感谢任何输入!
答案 0 :(得分:1)
这两种方法都有效,尽管NSDictionarys的NSArray对于阅读代码的其他人来说通常会更清楚一些(或者对于你自己几个月来说也是如此)。更好的可能是一组自定义NSObject子类对象,用于显式保存文本和图像,尽管节省的内存可能很小。
至于存储UIImages,无论是在字典中还是在单独的数组中,内存问题都是相同的。如果您使用imageWithContentsOfFile:
或initWithContentsOfFile:
创建它们,那么您应该非常好,因为UIImage应该在必要时自动释放图像数据(并且图像数据未在其他情况下使用),然后从中重新加载再次需要时的文件。如果您以其他方式创建UIImages并且它们很大或者数量众多,您可能需要考虑将数据保存到某种文件中,以便使用imageWithContentsOfFile:
。