无法在没有初始化的情况下使用 RLMArray?

Using RLMArray without initialisation not possible?

我想用一种方法收集一些数据。 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。

这真的不可能吗,就像 问题的答案所暗示的那样?

RLMArray 是一种容器类型,主要用于存储 Realm 对象上的多对多关系,在将其分配给对象之前,您不会获得任何集合优化,这这就是为什么 Realm 不允许直接初始化 RLMArray+new-initdocs 中被列为不可用)。

所以你的 parseDishesFromDictionary 方法应该 return 一个 NSArray<Dish *> 然后你可以使用 -addObjects 添加到你的 RLMArray 属性。