gpt4 book ai didi

ios - CoreData对象之间的关系

转载 作者:行者123 更新时间:2023-11-29 01:29:37 26 4
gpt4 key购买 nike

我有两种从服务器检索的对象:

1) 公司2) 类别

每次应用程序激活时,我都会从服务器更新数据(删除旧数据并插入新数据)。从我的数据库中,类别和公司通过 category_id 连接起来。我的问题是,我可以使用 category_id 将每个公司与类别的关系连接起来吗?

最佳答案

我认为这意味着每个公司只与一个特定类别有关系。

您想将 categoryId 添加到您的类别实体,并在添加类别时保存 ID。

您的模型将包含许多其他属性,但这里是如何设置关系的。

enter image description here

而且,inspector 中的关系...

enter image description here enter image description here

当然,您应该根据需要指定任何其他选项。

现在,您可以通过根据 CategoryId 搜索类别来设置 Company 实体的 category 关系,然后简单地设置 category 关系。核心数据将自动处理反向关系。

现在,给定任何类别,您都可以通过“类别”关系了解该类别中的所有 Company 对象,并且给定任何公司,您可以知道它属于哪个类别。

要通过 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"];
}

关于ios - CoreData对象之间的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33582266/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com