Я пытаюсь получить список свойства RLMObject программным образом:не class_copyPropertyList работа с RLMObject
MyRLMObject *myRLMObject = [[MyRLMObject alloc] init];
unsigned int count;
objc_property_t *properties = class_copyPropertyList([myRLMObject class], &count);
но она возвращает нуль.
Это хорошо работает с нормальными классами, полученными из NSObject.
я поставил точку останова и обнаружил, что myRLMObject фактически структурирован
(RLMStandalone_MyRLMObject *) 0x12c5c9cf0
MyRLMObject
RLMObject
_strName = (NSString *) nil
_strId = (NSString *) nil
(«strName» и «Strid» являются свойствами I, определенными и хочет получить из списка.)
С нормальный класс, производный от NSObject, я получил это
(MyNSObject *) 0x12c5cab40
NSObject
_strName = (NSString *) nil
_strId = (NSString *) nil
Я думаю, что причина должна быть, что Realm добавил «RLMStandalone_MyRLMObject» вне классовой структуры и с aused class_copyPropertyList не работает.
Есть ли обходной путь для решения этой проблемы? Заранее спасибо.
Вы можете уточнить, что вы пытаетесь достичь? 'class_copyPropertyList' получает только свойства, объявленные в этом конкретном классе, а не суперклассы. Если вы хотите знать все объявленные свойства, вы можете пройти иерархию наследования. Если по какой-то причине вы просто хотите узнать, какие свойства Realm управляют, вы можете использовать '- [RLMObject objectSchema]' для извлечения этой информации без восстановления в среду выполнения Objective-C. – bdash