gpt4 book ai didi

ios - 核心数据 : Fetching Relationship Attributes

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

在将获取限制为多个属性时,似乎无法弄清楚从关系中获取属性的技巧。在下面的代码中,“thumbnail”是实体“Photo”的一个可转换的 UIImage 属性。在带有键“thumbnail”的字典数组中,这总是很好地返回。我无法弄清楚的是第二个属性/属性,其中“previewImage”是 Photo 中与另一个名为“Image”的实体的关系,该实体具有可转换的属性“uiImage”(这是一个 UIImage)。

我已经试过了:

[fetchRequest setPropertiesToFetch:@[@"thumbnail", @"previewImage.uiImage"]];

但是我得到了这个错误:

-[NSExpressionDescription valueTransformerName]: unrecognized selector sent to instance 0x13078920

我已经试过了:

[fetchRequest setPropertiesToFetch:@[@"thumbnail", @"previewImage"]];

我在每个字典中确实得到了两个项目

{
previewImage = "0xbabba90 <x-coredata://03FF7129-1345-4BAE-A74E-2FF5A2B38CDC/Image/p5>";
thumbnail = "<UIImage: 0xbabbc60>";
}

但是当我尝试如下使用该“图像”对象时

NSDictionary *dict = [self.photos objectAtIndex:0];
Image *theImage = (Image *)[dict objectForKey:@"previewImage"];
[self.delegate photoCollectionViewController:self didSelectPreviewImage:theImage.uiImage];

我收到这个错误

"[_NSObjectID_48_0 uiImage]: unrecognized selector sent to instance 0xbabba90"

我什至在请求中抛出了这个

[fetchRequest setRelationshipKeyPathsForPrefetching:@[@"previewImage.uiImage"]];

所以,我想我正在挣扎,没有得到这个。任何帮助,将不胜感激。谢谢!

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Photo" inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];
[fetchRequest setResultType:NSDictionaryResultType];

最佳答案

随着 NSDictionaryResultType您可以方便地获取实体的属性。它不适用于遍历关系。这就是为什么在执行合乎逻辑的操作时会出现错误:获取 previewImage.uiImage .

来自文档:

The property descriptions may represent attributes, to-one relationships, or expressions.

也许您仍在考虑数据库查询,您可以在其中有选择地选择要获取的“字段”。这在 Core Data 中不是必需的,它是一个对象图,而不是数据库

相反,只需获取您的 NSManagedObject秒。如果你担心内存,你不应该。核心数据使用一种称为错误 的机制来仅获取它需要的内容。确实是上面的神秘"<x-coredata://03FF7129-1345-4BAE-A74E-2FF5A2B38CDC/Image/p5>"与故障在控制台中的显示方式非常相似。

尝试使用普通实体进行抓取。您可以期望它“正常工作”。

关于ios - 核心数据 : Fetching Relationship Attributes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16500170/

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