我正在使用Realm创建一个项目。在这个项目中,我正在回调终端服务器并获取JSON数据。我想将数据加载到Realm DB。我已成功实现了Realm并能够将数据写入其中。
但我不明白如何将NSArray
对象写入Realm DB。我已经关注了一些SO帖子并编写了以下代码。
RLM_ARRAY_TYPE(OBMDefinitionsModel)
@interface DefinitionsModel : RLMObject
@property (nonatomic) NSInteger defnitionID;
@property (nonatomic, strong) NSString *enTitle;
@property (nonatomic, strong) NSString *deTitle;
@end
#import <Realm/Realm.h>
#import "DefinitionsModel.h"
@interface DefinitionsRelationsModel : RLMObject
@property RLMArray<DefinitionsModel> *relationsArray;
@end
下面给出了为JSONDataHandler
类中的每个对象设置值的代码。
DefinitionsModel *defObj = [[DefinitionsModel alloc]init];
defObj.definitionID = [[defDic valueForKey:@"id"] integerValue];
defObj.enTitle = [[defDic objectForKey:@"title"] valueForKey:@"en"];
defObj.deTitle = [[defDic objectForKey:@"title"] valueForKey:@"de"];
但是,如何设置relationsArray
的值?
请在下面找到示例JSON数据;
{
"id": 41,
"title": {
"de": "Technologien",
"en": "Technologies"
},
"relations": [
90,
91,
92,
96
]
}
请帮忙。提前谢谢。
答案 0 :(得分:0)
您将值传递到数组中的方式与您已经执行的方式相同;您只需循环遍历每个数组项并手动将其添加到Realm。
for (NSNumber *relationID in defDic[@"relations"]) {
DefinitionsModel *newModel = [[DefinitionsModel alloc] init];
newModel.definitionID = relationID.integerValue;
[myDefinitionsRelationModel.relationsArray addObject: newModel];
}
话虽如此,有更简单的方法来解析JSON并将数据插入Realm。例如,Patreon已经发布了an open source library for this。