class_copyPropertyList无法使用RLMObject

时间:2016-06-29 18:39:16

标签: ios objective-c realm property-list

我试图以编程方式获取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无效。

此问题有解决方法吗?提前谢谢。

1 个答案:

答案 0 :(得分:1)

我认为问题是因为╒═══╤════════════════╤═════════╤══════════════════╕ │Tom│business_partner│phone │car │ ╞═══╪════════════════╪═════════╪══════════════════╡ │Tom│Helen │iPhone 6s│2015 Red Honda Fit│ └───┴────────────────┴─────────┴──────────────────┘ 具有动态属性,这意味着它们将被创建并添加到运行时的每个对象上,并且您无法知道它何时会发生。