Ich versuche, die Eigenschaftsliste eines RLMObject wie dies programmatisch zu erhalten:class_copyPropertyList arbeitet nicht mit RLMObject
MyRLMObject *myRLMObject = [[MyRLMObject alloc] init];
unsigned int count;
objc_property_t *properties = class_copyPropertyList([myRLMObject class], &count);
aber es gibt null zurück.
Dies funktioniert gut mit normalen Klassen abgeleitet von NSObject.
habe ich einen Haltepunkt und fand, dass myRLMObject tatsächlich als
strukturiert ist(RLMStandalone_MyRLMObject *) 0x12c5c9cf0
MyRLMObject
RLMObject
_strName = (NSString *) nil
_strId = (NSString *) nil
(„strName“ und „Strid“ sind die Eigenschaften I definiert und wollen aus der Liste erhalten.)
Mit eine normale Klasse von NSObject abgeleitet, bekam ich diese
(MyNSObject *) 0x12c5cab40
NSObject
_strName = (NSString *) nil
_strId = (NSString *) nil
ich denke, der Grund, dass Realm sein sollte, ein „RLMStandalone_MyRLMObject“ außerhalb der Klassenstruktur und c hinzugefügt aused class_copyPropertyList funktioniert nicht.
Gibt es eine Problemumgehung für dieses Problem? Danke im Voraus.
Können Sie klären, was Sie erreichen möchten? 'class_copyPropertyList' ruft nur die Eigenschaften ab, die in dieser spezifischen Klasse deklariert sind, keine Oberklassen. Wenn Sie alle deklarierten Eigenschaften kennen möchten, können Sie die Vererbungshierarchie durchlaufen. Wenn Sie aus irgendeinem Grund wissen möchten, welche Eigenschaften Realm verwaltet, können Sie '- [RLMObject objectSchema]' verwenden, um diese Informationen abzurufen, ohne die Objective-C-Laufzeit wiederherzustellen. – bdash