Вставьте значение из модели 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];