相关疑难解决方法(0)

使用Realm的RLMArray存储字符串数组

有谁知道如何使用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可以映射的结构.

objective-c realm ios

13
推荐指数
2
解决办法
2万
查看次数

标签 统计

ios ×1

objective-c ×1

realm ×1