我有两种从服务器检索的对象:
1)公司 2)类别
每次应用程序变为活动状态时,我都会更新服务器中的数据(删除旧数据并插入新数据)。从我的数据库中,类别和公司通过category_id
连接在它们之间。
我的问题是,我可以使用category_id
答案 0 :(得分:1)
我认为这意味着每家公司只与一个特定类别有关系。
您希望将categoryId
添加到您的类别实体,并在添加类别时保存ID。
您的模型将包含许多其他属性,但以下是如何设置关系。
而且,检查员的关系......
当然,您应该根据需要指定任何其他选项。
现在,您可以通过基于CategoryId搜索类别来设置公司实体的category
关系,然后只需设置category
关系。核心数据将自动处理反向关系。
现在,给定任何类别,您可以通过`类别关系知道该类别中的所有公司对象,并且给予任何公司您可以知道它所属的类别。
要按ID获取类别,您可以执行以下操作...
- (NSManagedObject*)categoryWithCategoryId:(NSString*)categoryId
inMOC:(NSManagedObjectContext*)moc
error:(NSError **)error {
NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Category"];
fetchRequest.predicate = [NSPredicate predicateWithFormat:@"categoryId = %@", categoryId];
fetchRequest.fetchLimit = 1;
return [[moc executeFetchRequest:fetchRequest error:error] firstObject];
}
要设置关系,如果你有xcode / mogenerator生成的子类,只需设置关系属性。
NSError *error = nil;
Category *category = [self categoryWithCategoryId:categoryId inMOC:moc error:&error];
if (category) {
// If you have generated subclasses...
company.category = category;
// Otherwise, you can do...
[company setValue:category forKey:@"category"];
}