ios - 是否可以将 `marshal` 数据放入 Realm 对象中?

标签 ios objective-c cocoa-touch realm

我有以下来自 API 的 JSON:

{
    "id": "7",
    "first_name": "Foo",
    "last_name": "Bar"
}

我希望我的 Realm 对象看起来像这样(objective-c):

@interface RWUser : RLMObject

@property int key;
@property NSString *firstName;
@property NSString *lastName;

@end

重点是属性名称略有不同,以更好地适应目标环境 Objective-C。 id在 Objective-C 中保留,所以一个确实需要更改,另外两个只是装饰性的,但我假设这是 id 的解决方案也可以应用于其他两个。

假设我无法更改 API 输出的内容。

我尝试过覆盖 - (instancetype) initWithObject:(id)object;但是我的没有被调用,执行直接跳转到 RLMObject版本。

我想在将数据传递给 initWithObject 之前编写一个编码方法来调用。然而,当 Realm 对象相互嵌套而不涉及更多时,这是行不通的。如果没有通用的解决方案,我会这样做。

最佳答案

当您的模型具有与 JSON 键不同的属性时,您无法开箱即用。我们仍在努力支持这一点。你最好的选择是使用类似 RealmJSON 的东西, Mantle ,或任何其他映射库以导入正确的 key

关于ios - 是否可以将 `marshal` 数据放入 Realm 对象中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28820529/

相关文章:

iphone - 在 CATiledLayer -setNeedsDisplay 之后,并非所有图 block 都重绘

ios - 将 NSData 转换为 unsigned int 32 数组

ios - 我的导航栏的色调会自动改变

objective-c - 什么类型的代码正确 : addSubview or direct controller assignment in AppDelegate?

iPhone NSURL 错误

ios - 通过 reloadData 更新 UITableView 时保持选择

注册远程通知时 iOS7 崩溃

ios - NSKeyedArchiver、NSKeyedUnarchiver 和 TimeInterval 四舍五入超过 7 位小数

objective-c - 来自 NSCollectionViewItem 的 Popover Segue

cocoa-touch - 在 UITableViewCell 中使用渐变作为背景