在iOS上包含彼此数组的Realm对象

时间:2016-09-26 10:32:03

标签: ios realm

我有两个对象,例如

Human
Man

它们包含RLMArray的属性,其中包含其他类型。但是由于标题冲突和模糊错误,我无法进行编译。我知道他们需要同时了解彼此,但他们不能。

我的人类:

#import "Man.h"

@interface Human : RLMObject
@property RLMArray <Man *><Man> *children;
@end

RLM_ARRAY_TYPE(Human)

男子班:

#import "Human.h"

@interface Man : RLMObject
@property RLMArray <Human *><Human> *children;
@end

RLM_ARRAY_TYPE(Man)

我该如何解决这个问题?我变得陌生:人类或人类。例如,如果我使用@class Man前向声明并在.m中链接标题,则表示&#34;无法找到Man&#34;的协议声明。

1 个答案:

答案 0 :(得分:0)

我刚做了一些测试。只要您声明Man协议,并删除泛型声明,RLM_ARRAY_TYPE类的前向类声明应该有效。

人类:

@class Man;
RLM_ARRAY_TYPE(Man)

@interface Human : RLMObject
@property RLMArray<Man> *children;
@end

男子班:

@class Human;
RLM_ARRAY_TYPE(Human)

@interface Man : RLMObject
@property RLMArray<Human> *children;
@end

不是一个很好的解决方案,但希望它能满足您的需求。

所有人都说,根据您的需要,一个更好的解决方案是使用Realm的RLMLinkingObjects feature自动设置这两个对象之间的反向关系。