领域db,获取对象的父链接

时间:2015-06-05 05:09:00

标签: objective-c realm

我使用Realm.io创建了以下对象。 一个简单的文件夹,带有嵌套的子文件夹

当我调用subFolders时,我只需获取所有子文件夹,就像魅力一样。但是,如果我获取一个子文件夹,我如何获得该对象的父文件夹?又名,导航回来..

    RLM_ARRAY_TYPE(Folder)

    @interface Folder : RLMObject
      @property (nonatomic, strong)  NSString *name;
      @property RLMArray *subFolders;
   @end

   ...
   ...
   ...

   [folder.subFolders addObject:subFolder];

2 个答案:

答案 0 :(得分:0)

您必须在Folder和SubFolder对象之间建立关系。假设SubFolder是RLMObject,则在对象中具有folderId属性。这将让您获取SubFolder的文件夹。这就像关系数据库中的外键一样。

答案 1 :(得分:0)

[obj linkingObjectsOfClass:@"Folder" forProperty:@"subFolders"]将为您提供Folder个数组包含subFolders的所有obj个对象的数组。如果您知道只有一个并且想要一个方便的属性来访问它,您可以执行以下操作,以便能够执行folder.parentFolder

@property (nonatomic, readonly) Folder *parentFolder;
...
- (Folder *)parentFolder {
    return [obj linkingObjectsOfClass:@"Folder" forProperty:@"subFolders"].firstObject;
}