2016-08-14 22 views
0

我在iOS应用程序中使用Realm作为我的存储层。应用程序有一个表格视图,其中每个单元格可以是两种类型之一。这两种类型有一些共同的领域,但几个领域是不同的。作为Tableview的数据源的领域 - 如何在数据源中存储不同的对象

客户端将执行带有搜索项的REST API,服务器将返回属于这两种类型的objets的优先级列表。设计人员不希望该对象显示为两个单独的组,但根据服务器确定的优先级混合在一起。

我想将结果存储在Realm DB中。由于境界RLMArray不允许我保存2种类型的对象,在领域模型这个,看来我需要有三个RLMArray对象 1.类型的对象 2类型的对象 3 。RLMArray第三种类型的对象具有两个字段:对象类型和对象ID(这是存储混合版本的对象)。

是否有减少重复的不同方法?

回答

1

第三类型可以是与其他两个类型的直接关系的包装对象:

@interface Obj1 : RLMObject 
@end 

@interface Obj2 : RLMObject 
@end 

@interface Wrapper : RLMObject 
@property Obj1 *o1; 
@property Obj2 *o2; 
@end 

当接收的对象,你会创建包装的实例为每只设置匹配链接。然后你的TableView可以检查哪个链接是有效的并显示链接对象的上下文。

根据您的使用情况,您甚至不需要RLMArray s用于两种主要对象类型,因为排序由包装对象列表维护。

相关问题