Невозможно понять, как получить атрибут из отношения при ограничении выборки до нескольких свойств. В приведенном ниже коде «thumbnail» является трансформируемым атрибутом UIImage объекта «Фотография». Это всегда возвращается в массив словарей с ключевым «миниатюром». То, что я не могу понять, - это второе свойство/атрибут, где «previewImage» является отношением в Фото к другому объекту с именем «Изображение», который имеет изменяемый атрибут «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'. Вы спрашивали где-нибудь идентификаторы объектов? –
Нет. Я искал весь проект для «NSManagedObjectIDResultType» и ничего там не было. Я даже не знал, что вы можете изменить тип результата, пока я не попытался ограничить выбранные свойства :) BTW, у меня есть ваша книга;) – user1139479