ios Coredata 大集合插入
<p><p>嘿,我被同样的问题困扰了好几天,插入时间逐渐增加,在较低的 ipad 中,它也会因内存问题而崩溃。插入 20k 条记录需要 4-5 分钟。后台线程会提高效率吗? ?无论如何我可以优化这个。如果可以,请帮忙。</p>
<pre><code>+(BOOL) addObjectToProfessionalsDBWithDict:(NSArray*)profArray{
if (!(>0 && profArray )) {
return NO;
}
NSManagedObjectContext *thisContext=;
for (int i=0; i<; i++) {
NSManagedObject *professionalDBObject = [NSEntityDescription
insertNewObjectForEntityForName:@"ProfessionalsDB"
inManagedObjectContext:thisContext];//initWithDictionary:objectDict]; NSMutableDictionary * objectDict=;
forKey:@"degree"];
// and 10 morevalues
if(i%500==0){
NSError *error;
NSLog(@"saved rec nu %d",i);
if (!) {
NSLog(@"Whoops, couldn't save: %@", );
return NO;
}
else{
NSLog(@"data saved");
}
;
}
}
;
NSError *error;
if (!) {
NSLog(@"Whoops, couldn't save: %@", );
return NO;
}
return YES;
</code></pre>
<p>}</p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>存储 20k 条记录大约需要 4 分钟。我使用以下代码将其缩短到 8 秒(这真的很棘手!):</p>
<pre><code>+(NSManagedObjectContext*)getInsertContext{
NSManagedObjectContext *thisContext=[ init];
AppDelegate *delegate=(AppDelegate*)[ delegate];
NSPersistentStoreCoordinator *coordinator = ;
;
;
return thisContext;
</code></pre>
<p>}</p>
<p>我在此上下文中保存的每 1000 条记录,在保存重置后再次获取新上下文:</p>
<pre><code> ;
thisContext=;
</code></pre></p>
<p style="font-size: 20px;">关于ios Coredata 大集合插入,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/18550873/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/18550873/
</a>
</p>
页:
[1]