我试图以编程方式获取RLMObject的属性列表:
MyRLMObject *myRLMObject = [[MyRLMObject alloc] init];
unsigned int count;
objc_property_t *properties = class_copyPropertyList([myRLMObject class], &count);
但它返回null。
这适用于从NSObject派生的普通类。
我放了一个断点,发现myRLMObject实际上是
(RLMStandalone_MyRLMObject *) 0x12c5c9cf0
MyRLMObject
RLMObject
_strName = (NSString *) nil
_strId = (NSString *) nil
(“strName”和“strId”是我定义并希望从列表中获取的属性。)
使用从NSObject派生的普通类,我得到了这个
(MyNSObject *) 0x12c5cab40
NSObject
_strName = (NSString *) nil
_strId = (NSString *) nil
我认为原因应该是Realm在类结构外添加了“RLMStandalone_MyRLMObject”,导致class_copyPropertyList无效。
此问题有解决方法吗?提前谢谢。
答案 0 :(得分:1)
我认为问题是因为╒═══╤════════════════╤═════════╤══════════════════╕
│Tom│business_partner│phone │car │
╞═══╪════════════════╪═════════╪══════════════════╡
│Tom│Helen │iPhone 6s│2015 Red Honda Fit│
└───┴────────────────┴─────────┴──────────────────┘
具有动态属性,这意味着它们将被创建并添加到运行时的每个对象上,并且您无法知道它何时会发生。