有谁知道如何使用Realm存储字符串数组?我正在尝试将以下响应映射到Realm中:
"zoneInfo": {
"tariffInfoLines": [
"In this city you pay per minute."
]
}
Run Code Online (Sandbox Code Playgroud)
我们有一个包含tariffInfoLines数组的zoneInfo对象.此tariffInfoLines数组包含字符串.在Realm中,有两种不同的变量类型用于存储数据.第一个是RLMObject,它允许你的标准NSString,int,long等.
第二种类型是RLMArray,用于数组(不支持NSArray).您必须为数组提供一个类型,该类型必须是RLMObject的子类.到目前为止,我们通过使用ABCRealmString对象解决了这个问题,如下所示:
@property RLMArray<ABCRealmString> *tariffInfoLines;
Run Code Online (Sandbox Code Playgroud)
ABCRealmString包含一个NSString属性(它基本上是一个包装器):
@property NSString *value;
Run Code Online (Sandbox Code Playgroud)
然而,这意味着当Realm尝试映射响应以持久化数据时,它正在寻找键"值"(属性的名称)的值.它似乎期望响应类似于以下内容:
"zoneInfo": {
"tariffInfoLines": [
{
"value": "In this city you pay per minute."
},
]
}
Run Code Online (Sandbox Code Playgroud)
在项目中,我们让它适用于以下结构:
"userOptions": [
{
"wantsEmailNotifications": true,
"wantsPushNotifications": false
},
]
Run Code Online (Sandbox Code Playgroud)
这有一个数组,其中的对象具有Realm可以映射到的清晰键值对.zoneInfo结构似乎是我们拥有一个包含值集的数组的唯一位置,而不是它们在对象内或具有任何键.
如果有人可以对此有所了解,关于是否可以使用Realm,或者是否需要API更改来匹配Realm可以映射的结构.