次のようにプログラムで 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 が機能しなくなったためだと思います。
この問題の回避策はありますか? 前もって感謝します。