我有两个对象,例如
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;的协议声明。
答案 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自动设置这两个对象之间的反向关系。