【发布时间】:2015-07-30 13:04:12
【问题描述】:
有谁知道如何使用 Realm 存储字符串数组?我正在尝试将以下响应正确映射到领域:
"zoneInfo": {
"tariffInfoLines": [
"In this city you pay per minute."
]
}
我们有一个 zoneInfo 对象,其中包含一个关税信息线数组。此关税信息线数组包含字符串。在 Realm 中有两种不同的变量类型用于存储数据。第一个是RLMObject,它允许您使用标准的 NSString、int、long 等。
第二种是RLMArray,用于数组(因为不支持NSArray)。您必须为数组指定一个类型,该类型必须是 RLMObject 的子类。到目前为止,我们已经通过使用 ABCRealmString 对象解决了这个问题,如下所示:
@property RLMArray<ABCRealmString> *tariffInfoLines;
ABCRealmString 包含一个 NSString 属性(它基本上是一个包装器):
@property NSString *value;
然而,这意味着当 Realm 尝试映射响应以保存数据时,它正在为键“值”(属性的名称)寻找一个值。它似乎期望得到类似于以下内容的响应:
"zoneInfo": {
"tariffInfoLines": [
{
"value": "In this city you pay per minute."
},
]
}
在项目中,我们让它适用于以下结构:
"userOptions": [
{
"wantsEmailNotifications": true,
"wantsPushNotifications": false
},
]
这有一个数组,里面的对象有明确的键值对,Realm 可以映射到。 zoneInfo 结构似乎是唯一一个我们有一个数组的地方,其中包含一组值,而它们不在对象内或没有任何键。
如果有人能对此有所了解,是否可以使用 Realm,或者是否需要更改 API 以匹配 Realm 可以映射的结构。
【问题讨论】:
标签: ios objective-c realm