2012-03-14 101 views
0

我的iPhone应用程序使用核心数据,大部分情况都很好。但是这里有一个问题:在一定数量的数据之后,它会在第一次执行时停止(其中核心数据实体必须被加载)。核心数据数据太多(一次)?

一些实验表明,在启动时加载到核心数据中的一定数量的数据都可以。 如果我超过了临界值,安装将开始失败。开始的数据量越大,失败的概率就越高。

通过单独测试,我确保数据本身没有错误。 我也可以说这个问题不会出现在模拟器中。 当我将调试器连接到设备时,也不会发生这种情况。

看起来在很短的时间内在核心数据中加载的太多数据会造成某种过载。 这是真的吗?任何想法可能的解决方案?

此时我使用UIActionSheet对象创建了一个部分解决方案来杀死一些时间(要求用户按下按钮)。但是这不是很令人满意,尽管目前它是有效的。

任何评论或建议更好的方式,将不胜感激。

回答

0

这是不是很清楚你说的“它失败”是什么意思。

但是,如果你使用的是SQLite,通过加载到CoreData中,如果你的意思是“创建和保存”实体在启动时填充CoreData,那么请记住不要在最后特别调用[managedObjectContext save ...]大量的数据,但创建并保存一组合理的NSManagedObject。否则,如果你的意思是你有大量的数据被检索为NSManagedObject,可能加载到UITableView考虑使用某种NSOperation进行异步加载。

如果这两种情况不适用于您,只是告诉我们您收到的错误,或者您的意思是“失败”os“失速”。

+0

感谢您的提示。但我最终解决了我的问题,使用NSTimer将作业分成几部分。现在它工作正常。 – Michel 2012-03-21 12:03:43