的情况如下:核心数据与关系一对多 - 保存/载入
每个应用程序启动时,它的下载量Beacon
S(对象)和Action
S(对象)的列表清单的时间。每个Beacon
都分配了零个或多个操作。目前(和简单),每个信标分配了一个动作。
因此,我正在下载数据并解析JSON到2 NSMutableArray
s。 Beacon
对象有一些变量和变量ID。 Action
对象也有一些字符串变量和关系beacon
这是(外键)相同中的变量id
。
我开发了一个单例来保存和加载数据。此时我的代码看起来像这样:
+(void)saveBeacons:(NSMutableArray*)array andAction(NSMutableArray*)actionsArray andManagedObject:(NSManagedObjectContext*)managedObject{
NSDictionary *jsonDict3 = [[NSDictionary alloc] init];
NSManagedObjectContext *context = managedObject;
for (int i=0; i<[array count]; i++) {
jsonDict3 = (NSDictionary*)[array objectAtIndex:i];
NSManagedObject *newBeacon = [NSEntityDescription insertNewObjectForEntityForName:@"Beacon" inManagedObjectContext:context];
[newBeacon setValue:[[jsonDict3 objectForKey:@"uuid"] uppercaseString] forKey:@"uuid"];
[newBeacon setValue:[jsonDict3 objectForKey:@"minor"] forKey:@"minor"];
[newBeacon setValue:[jsonDict3 objectForKey:@"major"] forKey:@"major"];
}
NSError *error = nil;
// Save the object to persistent store
if (![context save:&error]) {
NSLog(@"Can't Save! %@ %@", error, [error localizedDescription]);
}
注:array
包含Beacon
对象和actionArray
的Action
。
我知道我必须使用嵌套循环,但我应该如何为每个动作添加与信标的关系?每次用户下载新数据时,我也需要覆盖数据。我是否应该停止使用Core Data?
PS。这就是我的核心数据设计的样子: