ios - 一起使用 Realm.io 和 RestKit 时的属性数据类型

标签 ios swift restkit restkit-0.20 realm

我正在尝试将 RestKit 与 Realm.io 结合使用,但遇到了属性数据类型方面的问题。我有一个整数属性。 RestKit 似乎只想映射到 NSNumber 类型(https://github.com/RestKit/RestKit/wiki/Object-mapping),而 realm 对象只允许原始属性(IntFloatDouble 等 ( http://realm.io/docs/cocoa/0.87.4/#property-types ))。

我看到其他迹象表明这两个框架可以一起使用 ( Can i use RestKit and Realm.io ),但我不确定如何解决这个问题。

例如,如果我使用 NSNumber 数据类型,RLMObject 将失败并给出错误

'RLMException', reason: ''NSNumber' is not supported as an RLMObject property...'

但是如果我使用原始数据类型来使 Realm 快乐,我会从 RestKit 收到一个'key value coding-compliant'错误。

这是最糟糕的。

我已经尝试向该属性添加一个 RestKit 值转换器,我想也许我可以在需要进行 rest 调用时在数据类型之间来回切换。但是这个策略正在成为它自己的一个 stackoverflow 问题。

这实际上是最糟糕的。

有人做过吗?我是否正在使用值(value)转换器?提前致谢!

最佳答案

让 RestKit 在 Swift 中使用原始数字类型没有任何问题。这是我的代码:

class TwitterError: RLMObject {
    dynamic var message = ""
    dynamic var code = 0

    override var description: String { return "Error \(code): \(message)" }
}

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        let mapping = RKObjectMapping(forClass: TwitterError.self)
        mapping.addAttributeMappingsFromDictionary(["message": "message", "code": "code"])
        let responseDescriptor = RKResponseDescriptor(mapping: mapping, pathPattern: nil, keyPath: "errors", statusCodes: nil)
        let url = NSURL(string: "http://api.twitter.com/1/statuses/public_timeline.json")
        let request = NSURLRequest(URL: url!)
        let operation = RKObjectRequestOperation(request: request, responseDescriptors: [responseDescriptor])
        operation.setCompletionBlockWithSuccess(nil, failure: nil)
        operation.start()
    }
}

它输出了 “错误 92:需要 SSL” 的描述,这意味着代码 (Int) 和消息 (String ) 正在被正确解析。

关于ios - 一起使用 Realm.io 和 RestKit 时的属性数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26856273/

相关文章:

ios - ARKit 如何从角落而不是中心绘制平面

ios - AirPods 无法用作录音机应用程序的输入源

ios - RestKit CoreData 0.20.3 - 映射完成后保存 MOC 之前的额外检查

javascript - 在react-native中在iOS设备中播放声音

ios - 在 Xcode 6.0.1 中第一次失去与 "iOS Simulator"的连接

ios - Xcode Swift 将 TextField 内容传递到网站 textField

ios - RestKit:如何获取一个简单的 JSON 字符串数组?

ios - 在 POST JSON RestKit 中检索到 null

c# - iOS 平台上的 Xamarin Forms 未收到应用程序中心推送通知

iphone - 如果我不为 iPhone 和 iPad 创建单独的 xib,我的通用应用程序会被拒绝吗?