2016-12-23 2 views
1

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

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, чтобы сохранить его.

Если объект Мантия имена свойств совпадают с именами в 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

FreeFood *freeFood = [[FreeFood alloc] initWithMantleModel:model]; 
+1

Большое спасибо, это мне помогло! –

Смежные вопросы