首先,虽然我对一些基础知识有所了解,但我仍然是一个新手。
我有一个分段UITableView
,我目前正在使用NSDictionary
(用于分组)和4或5个不同的NSArrays(对于数据,其中一些在选择单元格时会传递到下一个视图)填充表格。它有效,但它是一个非常长的列表,在向上和向下滚动UITableView
几分钟后,离开该视图并回到它,应用程序开始“减速”并最终冻结。我一直在做一些研究,并发现我这样做的方式不是最好的方法。我已经阅读过使用另一个对象来填充表格,该表格只会根据需要加载数据,并且不会将这些数据保存在内存中(这可能导致我的应用程序冻结)。
任何人都可以帮我指出正确的方向来构建一个“数据对象”来存储我的数据,然后在我的UITableView
中使用它吗?我可以只拿我的NSDictionaries
和NSArrays
并以某种方式把它们放在自己的班级并打电话给那个班级吗?我会使用核心数据吗?还有其他建议吗?请注意,此数据无法由用户添加,更新或删除。我唯一一次更改数据的方法是添加更多数据(一个全新的记录),使列表更长,可能偶尔一次,但很少,更新或删除。
非常感谢任何帮助。
答案 0 :(得分:0)
UITableViewController在与CoreData结合使用时效率最高。为此,您应该查看NSFetchedResultsController。如果您想要一种简单的方法进入CoreData,请使用 MagicalRecord 。它非常易于使用且非常高效。
但是,值得注意的是,带有几个NSArray的NSDictionary填充了数千个NSStrings不应该导致内存问题。事实上,您首先可以将其加载到内存中,这表明您可以将整个数据结构保存在内存中。滚动时减速和冻结的事实意味着内存问题来自UITableView单元实例化。
以下是您应该检查的一些事项:
didReceiveMemoryWarning
?我猜是这样的。但是你想确定它不是一些线程阻塞问题。