2013-11-08 3 views
2

Я знаю, что я могу получить массив атрибутов из экземпляра управляемого объекта, например, так:метод класса для получения массива атрибутов из подкласса управляемого объекта?

[[[myManagedObject entity] attributesByName] allKeys] 

Но что, если я не хочу, чтобы создать экземпляр myManagedObject, и просто хочу, чтобы спросить его класс для массив его атрибутов? Благодаря

ответ

1

Вы можете получить описание сущности из контекста управляемого объекта

NSEntityDescription *entityDesc = 
         [NSEntityDescription entityForName:@"YourEntityName" 
            inManagedObjectContext:yourContext]; 

или из управляемого объекта модели

NSEntityDescription *entityDesc = [yourModel entitiesByName][@"YourEntityName"]; 

без инстанцирования экземпляра этого объекта, и затем извлекают атрибуты, например

NSArray *attributes = [[entityDesc attributesByName] allKeys]; 
+0

Просто интересно ... почему объект сущности должен быть создан в контексте управляемого объекта, даже если он не становится частью постоянного хранилища при сохранении контекста? Спасибо – mkc842

+0

@ mkc842: Хороший вопрос! Это связано с тем, что контекст знает о модели Core Data *. Кроме того, вы можете напрямую получить описания объектов из NSManagedObjectModel. –

+0

@ mkc842: ... Я соответствующим образом обновил ответ. –

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