HandyJSON icon indicating copy to clipboard operation
HandyJSON copied to clipboard

配合realmswift用不了啊

Open YaoJuan opened this issue 7 years ago • 2 comments

用dynamic修饰的时候直接不用存了。数据都是0,然后取掉之后从realm取出来整个模型没问题。但是用.属性 取出来的属性都是初始的值。

YaoJuan avatar Sep 30 '17 09:09 YaoJuan

是 dynamic 和 mapping 的问题, HandyJSON 本身就不支持这个.

我目前的解决方法,有两个, 虽然都不是很好, 不过抛转引玉, 肯定会有更好的方法的

HandyJSON 版本: 5.0.0
Swift 版本: 5.0

我拿以下Json作为示例

{
  "Name":"我是Sinking"
}
  1. 直接用后台传来的 Key

如果你并不介意直接用后台传来的key, 那么就可以直接声明

@objc dynamic Name: String?

这样就算有 dynamic, 也是可以用的. 当然, 如果你愿意这样, 那么也不会来寻求答案, 那么可以看看第二种

  1. 利用 willSet

代码如下

class XQTestModel: NSObject, HandyJSON {
    
    required override init() {
        super.init()
    }
    
    @objc private var Name: String?
    {
        willSet {
            xq_name = newValue
        }
    }
    
    @objc dynamic var xq_name: String?
    
}

这个方法虽然有点蠢, 但是起码能解决目前的问题.
如有更好的方法, 请告诉我, 因为我也不想再用这么蠢的方法了 (╯﹏╰)

SyKingW avatar Aug 06 '19 03:08 SyKingW

坐等解决办法

CaiChenghan avatar May 22 '20 11:05 CaiChenghan