我的应用程序需要使用 Web 服务并在 json 中获取一些数据。我需要解析 json 并在我的持久性存储中提供数据,一切都运行良好,直到我在实际设备中测试我的应用程序,应用程序看起来就像它一直持有它,直到我感到沮丧,然后最后它在我的脸上拉屎 x -(
这里我有一个 insertOrReplaceObjectForEntityForName 的方法
+(id) insertOrReplaceObjectForEntityForName:(NSString *)entityName inManagedObjectContext:_context WithPredicateString:(NSString *)predicateString, ...{
NSManagedObject *object;
va_list ap;
va_start(ap, predicateString);
NSFetchRequest *req = [[NSFetchRequest alloc] initWithEntityName:entityName];
NSPredicate *pred = [NSPredicate predicateWithFormat:predicateString arguments:ap];
[req setPredicate:pred];
int count = [_context countForFetchRequest:req error:nil];
if(count > 0){
NSArray *arr = [_context executeFetchRequest:req error:nil];
object = [arr objectAtIndex:0];
}
else{
object = [NSEntityDescription insertNewObjectForEntityForName:entityName inManagedObjectContext:_context];
}
va_end(ap);
return object;
}
在这里,一条线的简单操作大约需要 0.004 秒,在解析数据时,我必须结合许多其他操作执行大约 1000 次此操作,这使得我的解析过程过于繁重。我的默认数据库中已经有很多药物,我必须检查药物是否存在,如果存在,我必须编辑它的值。
Drug *drug = [NSEntityDescription insertOrReplaceObjectForEntityForName:@"Drug" inManagedObjectContext:parsingContext WithPredicateString:[NSString stringWithFormat:@"drugId == '%@'",[drugDetails objectForKey:@"DrugId"]]];
我正在使用核心数据来保持应用程序中的历史记录,但现在我认为我需要远离核心数据并忘记保留历史记录,除非这里有人可以帮助我。我已经花了很多时间来制作我的应用程序,现在客户正在打我的腿,有什么建议吗?