我正在尝试从某些地方获取数据并将其保存在包含该数据和信息的NSMutableArray
个自定义对象中。
每次用户打开应用程序时,都会从源加载相同的数据,并使用自定义对象将其转换为我的可爱数组。这需要很长时间(约10-20秒)并使应用程序像一个愚蠢的。所以我尝试获取数据并将其显示在this link
中我尝试了什么:
NSUserDefault
。在任何人开始回答这个问题之前。看看示例代码并运行它以确保检索数据并显示它的含义。在重新启动样品后的快速时间内做出我想要更清楚的事情:)
如果有人能让我sample更清楚,我会感激不尽。
答案 0 :(得分:2)
在我看来,你只有两个合理的选择:1)显而易见的是使用数据库存储和核心数据来管理你的对象。 2)如果您不想使用Core Data,您可以单独存储每个自定义对象,以便可以批量加载它们。
如果你想选择第二个选项,你可以:
1)在自定义对象上实现NSCoding协议。 (这只是一些样板代码,非常简单) 2)加载数据后,可以异步将其保存到磁盘(这样就不会阻止UI)。 3)当应用程序启动时,您可能会加载一批对象(例如20,考虑到您在给定点只显示~10)。然后,当用户滚动浏览您的内容时,您可以在同一个块中异步加载更多内容,以便在需要时可以显示它们。
这应该会大大提高您应用的效果。相反,如果您使用Core Data,则可以通过设置 - [NSFetchRequest fetchBatchSize]属性来使用类似的行为。这将自动批量获取数据。
答案 1 :(得分:0)
我建议你一个非常简单的解决方案,我已经多次使用过,而且非常有效。
对于此解决方案,您必须创建一个新的管理器类,以确保从何处获取数据。
答案 2 :(得分:0)
全部:)
我发现这个简单的tutorial解释了示例代码“fetchedResultsController”的某些部分。
,不同之处在于.pch
文件,其中有ZAssert
条件在应用开始时和第一次添加时获取数据。