我想用一种方法收集一些数据。然后RLMArray
将用作一对多关系,例如menu.dishes
+ (RLMArray<Dish> *)parseDishesFromDictionary:(NSDictionary *)resultDictionary {
NSArray *menuDishes = (NSArray*)resultDictionary[@"menuDishes"];
RLMArray<Dish> *dishes;
for (NSDictionary *menuDishDictionary in menuDishes) {
Dish *dish = [self getDishGetDishfromDictionary:menuDishDictionary];
[dishes addObject:dish];
}
return dishes;
}
问题:,菜式数组始终为nil。
像this问题的答案所暗示的那样,这真的不可能吗?
最佳答案
RLMArray
是一种容器类型,最主要用于在Realm对象上存储多对多关系,并且在将其分配给对象之前,您没有获得任何集合优化,这就是为什么Realm禁止直接初始化RLMArray
( docs中将+new
和-init
列为不可用。
因此,您的parseDishesFromDictionary
方法应返回一个NSArray<Dish *>
,然后可以使用 RLMArray
将其添加到-addObjects
属性中。