HandyJSON icon indicating copy to clipboard operation
HandyJSON copied to clipboard

声明 为@objc dynamic这个的属性,在使用mapping时无法获取值

Open ashen-zhao opened this issue 7 years ago • 7 comments

@objc dynamic var descrip = "" func mapping(mapper: HelpingMapper) { mapper <<< self.descrip <-- "description" }

如上代码: descrip无法通过description获取值

ashen-zhao avatar Dec 04 '17 09:12 ashen-zhao

我也遇到了这个问题,请问有什么解决方法吗?

kegan23 avatar May 18 '18 02:05 kegan23

针对这个类,做特殊处理吧,用系统自带的处理

ashen-zhao avatar May 18 '18 03:05 ashen-zhao

针对这个类,做特殊处理吧,用系统自带的处理

怎么处理?

miaozhang9 avatar Nov 15 '18 10:11 miaozhang9

1

Yongle-Fu avatar Mar 21 '19 17:03 Yongle-Fu

求助,同样问题

Dast1Woop avatar Apr 21 '19 07:04 Dast1Woop

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

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

遇到了同样问题

Akateason avatar Mar 08 '22 03:03 Akateason