Core data 目标C-核心数据记录更新
我必须更新核心数据中的一些记录。这条路对吗Core data 目标C-核心数据记录更新,core-data,nsmanagedobject,Core Data,Nsmanagedobject,我必须更新核心数据中的一些记录。这条路对吗 NSManagedObjectContext *context = [self managedObjectContext]; NSMutableArray *poiFromCD=(NSMutableArray *)[self takePoiFromCoreData]; for (int i=0; i<[array count]; i++) { for (int j=0; j<[poiFromCD count]; j++) {
NSManagedObjectContext *context = [self managedObjectContext];
NSMutableArray *poiFromCD=(NSMutableArray *)[self takePoiFromCoreData];
for (int i=0; i<[array count]; i++) {
for (int j=0; j<[poiFromCD count]; j++) {
Poi *poi=(Poi *)[poiFromCD objectAtIndex:j];
if ([[[array objectAtIndex:j]objectForKey:@"poiID"]isEqualToString:poi.poiID]) {
Poi *p=[poiFromCD objectAtIndex:j];
p.poiID=[[array objectAtIndex:i]objectForKey:@"poiID"];
p.lastmod=[[array objectAtIndex:i]objectForKey:@"lastmod"];
} else {
Poi *p;
p=[NSEntityDescription insertNewObjectForEntityForName:@"Poi" inManagedObjectContext:context];
p.poiID=[[array objectAtIndex:i]objectForKey:@"poiID"];
p.lastmod=[[array objectAtIndex:i]objectForKey:@"lastmod"];
}
}
}
NSError *error;
if (![context save:&error]) {
NSLog(@"Errore durante il salvataggio: %@", [error localizedDescription]);
}
NSManagedObjectContext*context=[self-managedObjectContext];
NSMutableArray*poiFromCD=(NSMutableArray*)[self-takePoiFromCoreData];
对于(int i=0;iNo),这不是更新核心数据对象的标准方法。显然,您试图将核心数据视为SQL,这是行不通的
核心数据不是SQL。实体不是表。对象不是行或记录。属性不是列。核心数据是一个对象图管理系统,它可以或不可以持久化对象图,也可以或不可以在后台使用SQL来持久化对象图。试图用SQL术语来理解核心数据会导致您完全误解重新收集数据,会导致很多悲伤和浪费时间
如果不知道数据模型是什么样子的,我就不能很好地告诉您要做什么,但是您很少需要遍历这样的对象数组