我在核心数据中设置了一对多关系。我可以从'Main'实体查看/添加/删除对象,但是现在我想查看/添加/删除对象到许多'Subs'实体,该实体应该为每个Main实体提供单独的Subs对象列表。
我试过这段代码:
NSManagedObjectContext *context = [[DataSingleton sharedSingleton] thisMain].managedObjectContext;
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription
entityForName:@"Subs" inManagedObjectContext:context];
[fetchRequest setEntity:entity];
NSError *error;
NSArray *fetchedObjects = [context executeFetchRequest:fetchRequest error:&error];
wolArray = [NSMutableArray arrayWithArray:fetchedObjects];
[[DataSingleton sharedSingleton] thisMain]是我想要获得Subs for的Main。我做错了吗? 它似乎只给了我所有主要的所有子。
现在有可能我添加错误,并且他们没有被添加到主要的子服务中(如果可能的话?)
这就是我添加它们的方式:
NSManagedObjectContext *context = [[DataSingleton sharedSingleton] thisMain].managedObjectContext;
Subs *subsInfo = [NSEntityDescription
insertNewObjectForEntityForName:@"Subs"
inManagedObjectContext:context];
subsInfo.name = [newDevice objectForKey:@"name"];
subsInfo.address = [newDevice objectForKey:@"address"];
subsInfo.post = [newDevice objectForKey:@"post"];
NSError *error;
if (![context save:&error]) {
NSLog(@"Whoops, couldn't save: %@", [error localizedDescription]);
}
答案 0 :(得分:3)
如果thisMain
是“主要”对象而subs
是从“主要”到“潜在”的一对多关系,那么您可以这样做
NSArray *thisSubs = [thisMain.subs allObjects];
获取thisMain
的所有“Subs”数组。不需要获取请求。
对于第二项任务,您需要定义从“Subs”到“Main”的反向关系“main”。当您创建新的“Subs”对象subsInfo
时,则
subsInfo.main = thisMain;
将其添加到主对象。