我有一个应用程序,用户可以在其中选择要显示的位置的特定主题。我将选定的主题objectID存储在NSUserDefaults中,以便在应用程序重新启动时,所选主题仍然完好无损。
在整个应用程序中,我引用了这个选定的主题。我目前有一个类变量来保存objectID,但我有时需要检索对象本身的属性(即name属性)。为此,我从核心数据中检索对象,然后访问我的值。
我担心这样做的处理时间,所以我的问题 - 什么是更好的选择......?
1)将objectID存储在内存中并查询核心数据,以便在每次需要访问属性时检索对象。我认为这种方式更便宜,因为我的内存使用量更少,但处理成本更高。
2)将actaul ojbect存储在内存中,然后只需要随时访问该对象。我认为这在处理意义上更便宜,但在内存使用方面可能更昂贵。
答案 0 :(得分:4)
这两种方式都无关紧要。 Core Data通过其ID检索单个对象所花费的时间实际上是0.单个托管对象使用的内存量(假设对象不包含一堆图像数据元素)可以忽略不计。
根据最容易实施和最容易维护的内容做出决定。性能不会成为一个因素。我目前正在开发一个应用程序,它可以在Core Data中存储数百个HTML页面,而且我不断阅读/编写/修改这些对象,并且没有明显的延迟时间。