似乎無法找出在將獲取限制爲多個屬性時從關係中獲取屬性的技巧。在下面的代碼中,「thumbnail」是實體「Photo」的可轉換的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];
對'_NSObjectID_48_0'的引用表明你在某處使用了'NSManagedObjectIDResultType',儘管你的代碼表示爲'NSDictionaryResultType'。你是否在某處要求提供對象ID? – 2013-05-11 19:57:12
不,我在整個項目中搜索了「NSManagedObjectIDResultType」,但沒有任何內容。我甚至不知道你可以改變結果類型,直到我試圖限制提取的屬性:)順便說一句,我有你的書;) – user1139479 2013-05-11 20:26:01