在将获取限制为多个属性时,似乎无法弄清楚从关系中获取属性的技巧。在下面的代码中,“缩略图”是实体“照片”的可转换 UIImage 属性。在带有“缩略图”键的字典数组中总是可以很好地返回。我无法弄清楚的是第二个属性/属性,其中“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];