gpt4 book ai didi

ios - 如何在 Core Data 中获取对象引用?

转载 作者:行者123 更新时间:2023-11-29 03:04:11 24 4
gpt4 key购买 nike

enter image description here

有一个实体,我在其中填充来自 JSON 的数据,假设它是 PhotographerPhoto。两者都有一些数据,我使用循环填充了这些数据并管理了 ObjectContex ..

像这样,

NSMutableArray *ArrPhotographer= [[self.M3Arr objectForKey:@"LifeMag"]objectForKey:@"Photographer"];

for (int i = 0; i< ArrPhotographer.count; i++) {
Photographer * photographerObj = [NSEntityDescription insertNewObjectForEntityForName:@"PhotographerData"
inManagedObjectContext:[self managedObjectContext]];
NSMutableDictionary *tpDict = [cleanerListArr objectAtIndex:i];
photographerObj.cleanerName = [tpDict objectForKey:@"photographerName"];
}

现在我已经为摄影师和照片实体完成了此操作,根据这张图片,我的杂志实体拥有此表中已存在的数据。如图所示,我已经与 Magazine 的 Photo 和 Photographer 建立了关系。

现在的问题是,

如果 Photographer Name 已经存在于表中,我如何将它与 Magazine Entity 连接起来。我需要那个特定位置的托管对象引用。

(例如,现在有三位摄影师,Ron,Harry 和 Sunny 对于照片封面 1,我想要 Ron 的名字。然后在预填充时需要 Ron 的对象引用)。​​

如何获取这个对象的Reference?

//**************** 编辑

我正在获取对象存在...但是没有如何获取对象以及 2) 如何将其提供给上述的 x 和 y?

I am using this code to saving the data in Magazine

Magazine *magObj = [NSEntityDescription insertNewObjectForEntityForName:@"Magazine"
inManagedObjectContext:[self managedObjectContext]];

magObj .issueID=[NSNumber numberWithInt:1];
magObj .photo= x;
magObj .photographer = y;
#### 编辑2
   NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Cleaner"];
[request setPredicate:[NSPredicate predicateWithFormat:@"cleanerName = %@", @"Robin"]];
[request setFetchLimit:1];
NSUInteger count = [[self managedObjectContext] countForFetchRequest:request error:nil];
if (count == NSNotFound){

NSLog(@"ERROR FOund");
}
// some error occurred
else if (count == 0){

NSLog(@"no matching object");
}
// no matching object
else{

NSLog(@"Found Match");

}

最佳答案

您需要使用 NSFetchRequest 来搜索要连接的适当对象的上下文。提取请求指定要搜索的实体类型,您需要添加 NSPredicate 以将结果过滤为仅显示您感兴趣的特定名称。

请注意,您可以使用名称列表运行单个提取请求,这样您只需访问数据存储一次即可获取信息,然后在对象创建/连接循环期间使用返回的列表。

如果您一次性加载所有数据,那么您可以创建一个包含托管对象实例的字典,以便您可以链接到它们而无需提取。

关于ios - 如何在 Core Data 中获取对象引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22960843/

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