Вставьте значение из модели Mantle в RealmDB

У меня есть проблема: как я могу сохранить значение из модели Mantle в базе данных Realm с помощью цикла? мой код ниже:

MTLmodel *model = [MTLJSONAdapter modelOfClass:[MTLmodel class] fromJSONDictionary:jsonResponse error:&error];

FreefoodRealmdb* food = [[FreefoodRealmdb alloc]init];
food.foodName    =  model.name;

NSLog(@"%@",food.foodName);

RLMRealm *realm = [RLMRealm defaultRealm];

[realm beginWriteTransaction];
[realm addObject:food];
[realm commitWriteTransaction];

Это сохраняет только первый элемент модели, но мне нужно сохранить их все вместе. Как мне это сделать??

Спасибо заранее!!

1 ответ

Поскольку Mantle также требует, чтобы ваши объекты модели были разделены на подклассы из шаблонного класса, невозможно иметь один объект, состоящий из MTLModel а также RLMObject классы.

Таким образом, необходимо вручную скопировать значения из вашего объекта Mantle в объект Realm, чтобы сохранить его.

Если имена свойств вашего объекта Mantle совпадают с именами в Realm, вы можете в достаточной степени автоматизировать процесс:

NSDictionary *mantleDict = model.dictionaryValue;
FreeFood *freeFood = [[FreeFood alloc] init]; 

for (RLMProperty *property in freeFood.objectSchema.properties) {
    freeFood[property.name] = mantleDict[propertyName];
}

RLMRealm *realm = [RLMRealm defaultRealm];
[realm transactionWithBlock:^{
    [realm addObject:food];
}];

Для чистоты вы также можете переместить эту логику копирования в метод init вашего Realm Object.

FreeFood *freeFood = [[FreeFood alloc] initWithMantleModel:model];
Другие вопросы по тегам