我试图在内存存储中插入CoreData中的大约400个对象,但它很长。大约20-30秒。这是正常的吗?许多插入可能存在一些特殊情况吗?
- (MyObject*) insertNew
{
NSEntityDescription* entityDescr = [MyObject entityDescription];
NSManagedObjectContext* ctx = [NSManagedObjectContext defaultContext];
MyObject* obj = [[[MyObject alloc] initWithEntity:entityDescr
insertIntoManagedObjectContext:ctx] autorelease];
obj.name = @"name";
obj.Id = @"an ID";
return obj;
}
对象彼此之间存在层次关系,就像树一样。
答案 0 :(得分:0)
在使用Core Data进行任何导入之前,必要的读物是Core Data Programming Guide "Efficiently Importing Data".
它可能会为您节省大量时间,特别是如果导入是重复进行的话。
答案 1 :(得分:0)
如果在您的应用程序第一次运行时导入此数据,您可能希望查看使用种子数据库,这样您可以在开发期间执行一次缓慢导入,然后只需进行小型复制操作。< / p>
如果您的数据库非常大且空间非常宝贵,您可能需要寻找另一种解决方案,因为这可能会占用超出必要的磁盘空间(种子数据库将位于捆绑包和文档目录中)。