2013-04-11 3 views
0

Есть ли простой способ найти тип объекта, который формирует определенные отношения в Core Data?Получить тип отношения основных данных

К примеру, у меня есть один-ко-многим с:

Battery-----1-to-Many-----Comment 

Если бы я не знал, что отношения были для конкретного Comment объекта, есть programatic способ, которым я мог бы выяснить, какие тип объекта, он основан исключительно на наборе, с которым я имею дело.

Что-то вдоль линий

battery.comments.classType = [Comment class] 

Я знаю, что оба Battery и Comment имеют тип NSManagedObject - Я хотел бы более конкретно, что они знают.

Я также знаю, что если NSSet содержит любые данные, я могу использовать любой из его объектов для запроса типа. Однако мне нужно обслуживать, когда нет данных в NSSet. Спасибо.

+0

Вы можете сделать [[NSManagedObject сущность]] название, которое даст вам имя объекта. Затем сравните это с NSStringFromClass ([Класс комментариев]); например. – JDx

ответ

3

Вы можете получить всю информацию, вам нужно от этого несколько строк:

NSRelationshipDescription* rel = [[[battery entity] relationshipsByName] valueForKey:@"comments"]; 
    NSString* className = [[rel destinationEntity] managedObjectClassName]; 
    NSString* entityName = [[rel destinationEntity] name]; 
+0

СПАСИБО! Ты гений. Код, который я использовал, был: Class entityClass = NSClassFromString (childEntityClassName); – theDuncs

0

В вашем AppDelegate у вас есть свойство NSManagedObjectModel. Он имеет массив entities, содержащий NSEntityDescription s. Отсюда вы сможете понять это. Надеюсь это поможет!

+0

Большое спасибо. – theDuncs

Смежные вопросы