swift HandyJSON 使用注意事项(NumberofFields下crash)
背景
HandyJSON是swift开发中常用的SON解析框架。该库由阿里巴巴技术团队研发,已经过了大量的实战积累。不再赘述。
地址:https://github.com/alibaba/HandyJSON
版本参考
针对不同的IDE环境和Swift版本,HandyJSON的版本也不一样,可以参考下表:
Xcode | Swift | HandyJSON |
Xcode 10 | Swift 4.2 | 4.2.0 |
Xcode 9.4.1以下 | Swift 4 | >= 4.1.1 |
Xcode 8.3以上 | Swift 3.x | >= 1.8.0 |
搜索版本参考如下:
-> HandyJSON (4.2.0)
A Json Serialization & Deserialization Library for Swift
pod 'HandyJSON', '~> 4.2.0'
- Homepage: https://github.com/alibaba/handyjson
- Source: https://github.com/alibaba/HandyJSON.git
- Versions: 4.2.0, 4.2.0-beta1, 4.1.3, 4.1.2, 4.1.1, 4.1.0, 4.0.0-beta.1, 4.0.0-beta, 1.8.0, 1.7.2, 1.7.1, 1.7.0, 1.6.1, 1.6.0, 1.5.2, 1.5.1, 1.5.0, 1.4.0, 1.3.0, 1.2.1,
1.2.0, 1.1.0, 1.0.0, 0.4.0, 0.3.0, 0.2.0, 0.1.0 [master repo]
关于在NumberofFields 报错:
针对不同swift版本HandyJSON一直在更新版本,如果你的HandyJSON版本是1.8.0,swift版本大于3.3并且小于4,可能会在NumberofFields下crash,解决方法有两个:
1.修改库代码(不推荐),将如下代码:
var nominalTypeDescriptor: NominalTypeDescriptor? {let pointer = UnsafePointer<Int>(self.pointer)let base = pointer.advanced(by: nominalTypeDescriptorOffsetLocation)if base.pointee == 0 {// swift class created dynamically in objc-runtime didn't have valid nominalTypeDescriptorreturn nil}return NominalTypeDescriptor(pointer: relativePointer(base: base, offset: base.pointee))}
修改为:(最后一行)
var nominalTypeDescriptor: NominalTypeDescriptor? {let pointer = UnsafePointer<Int>(self.pointer)let base = pointer.advanced(by: nominalTypeDescriptorOffsetLocation)if base.pointee == 0 {// swift class created dynamically in objc-runtime didn't have valid nominalTypeDescriptorreturn nil}return NominalTypeDescriptor(pointer: relativePointer(base: base, offset: base.pointee - base.hashValue))}
或者参考官方写法:
var nominalTypeDescriptor: NominalTypeDescriptor? {let pointer = UnsafePointer<Int>(self.pointer)let base = pointer.advanced(by: nominalTypeDescriptorOffsetLocation)if base.pointee == 0 {// swift class created dynamically in objc-runtime didn't have valid nominalTypeDescriptorreturn nil}#if swift(>=4.1) || (swift(>=3.3) && !swift(>=4.0))return NominalTypeDescriptor(pointer: relativePointer(base: base, offset: base.pointee - base.hashValue))#elsereturn NominalTypeDescriptor(pointer: relativePointer(base: base, offset: base.pointee))#endif}
2.如果你的swift版本大于3.3并且小于4,升级HandyJSON至对应版本: ~> 4.1.0,如果大于4.0,参照上表升级
swift HandyJSON 使用注意事项(NumberofFields下crash)相关推荐
- swift 选中长按项_Swift下使用UICollectionView 实现长按拖拽功能
导读 简单用Swift写了一个collectionview的拖拽点击排序效果; 拖拽排序是新闻类的App可以说是必有的交互设计,如今日头条,网易新闻等. GitHub地址:https://github ...
- swift 2.1 安裝與下載
STEP1: 下載XCode 6" 請打開網頁,連接到此網站,取得開發工具https://developer.apple.com/swift/resources/ 點選"Downl ...
- Linux添加rose不能交互式登录,常见问题及注意事项 - Linux下环境安装配置Rose HA全攻略(图)_数据库技术_Linux公社-Linux系统门户网站...
常见问题及注意事项 • 开机方法: 开机的时候我们必须注意到,必须先开磁盘阵列,等 磁盘阵列状态READY 后,再开主机,主机完全开启后,再把备机开启. • 关机方法: 关机的方法则是开机的反顺序 ...
- OC与Swift混编 注意事项
前言 随着Swift发展, 很多新的项目开始使用Swift作为首选语言. Swift语言以其简洁.快速.安全的特点获得了一大波粉丝,我也是其中之一. 项目背景:公司一些旧项目大都使用OC编写, 运营中 ...
- Swift SnapKit布局注意事项
SnapKit布局注意事项 Snapkit 简单布局Demo 常见问题一:updateConstraints 常见问题二:snapkit更改布局动画效果 常见问题三:两个自适应宽度控件,导致右边的自适 ...
- Swift HandyJSON库中的类型相互转换的实现
前言 阅读优秀的开源框架,对提升自己的能力有很大帮助.HandyJSON库就是其中的优秀框架之一, 本文介绍一下HandyJSON库是如何处理类型间相互转换的. 我们在开发时,常见的类型转换如下: D ...
- CentOS下crash分析内核kdump文件方法
1. 安装软件包: # yum install crash # yum install kernel-debuginfo 2. crash使用: # crash /var/crash/127.0.0. ...
- C++知识点36——使用智能指针的注意事项(下)
四.智能指针与容器 当把shared_ptr对象放入一个容器中时,会调用shared_ptr的拷贝构造函数并且引用计数+1 int main(int argc, char const *argv[]) ...
- 开酒馆前的注意事项 (下)
六.价格定位 开业之前就要定好店内的酒单,偏向于什么方面(啤酒,果酒,调酒).酒单价格需要多去参考周边酒馆酒吧的定价,再根据你酒馆的面向客群来设置定价. 七.合作共赢 除非资金充裕,一般开酒馆前都会寻 ...
最新文章
- VC ActiveX 控件 开发总结
- Socket之TCP客户端【Python】
- 问题:pom文件有删除线,不能识别maven模块
- 2018抖音数据研究报告完整版,你喜欢的网红画像到底是怎样?
- wpf获取当前窗体的屏幕坐标
- Java小游戏 超级玛丽源码分享
- win10 把软件窗口背景设置成豆沙绿
- 在计算机内部.机器码的形式,在计算机内部,机器码的形式是____。
- 阿里 vs. 腾讯,谁的收购更有眼光?
- 【翻译】Computer Vision for Autonomous Vehicles:Problems,Datasets and State-of-Art
- 随便画一张,奥古斯丁的世界观 及 lambda
- java 运算规则_java四则运算规则
- Actor模型的优缺点
- python编程 迷你世界_迷你世界迷你编程
- HDLBits练习汇总-14-时序逻辑设计测试--状态机(二)
- 利用友元函数与友元类定义复数类,实现基本运算
- mysql的mvcc 和next-lock
- 开关电源雷击浪涌整改_浪涌整改措施.doc
- MFC-最简单的MFC程序
- 国风(1)中国民族调式