swift4.1升级到 HandyJSON crash

Posted iOS开发知识整理

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了swift4.1升级到 HandyJSON crash相关的知识,希望对你有一定的参考价值。


    var numberOfFields: Int {

        return Int(pointer.pointee.numberOfFields)

    }


在升级之后,这个地方会crash。然后在github上看了一下反馈发现也有遇到相同问题的人。不过幸运的是这个crash已经被解决了。


extension NominalType {

    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 nominalTypeDescriptor

            return nil

        }

        #if swift(>=4.1)

        return NominalTypeDescriptor(pointer: relativePointer(base: base, offset: base.pointee - base.hashValue))

        #else

        return NominalTypeDescriptor(pointer: relativePointer(base: base, offset: base.pointee))

        #endif

//        return NominalTypeDescriptor(pointer: relativePointer(base: base, offset: base.pointee))

    }



只需要在这个扩展里面加一个判断就好了。还以为是我哪儿出了问题,吓我。

遇到第三方错误时,可以看下github issues 有没有类似的问题。


以上是关于swift4.1升级到 HandyJSON crash的主要内容,如果未能解决你的问题,请参考以下文章

阿里巴巴最新开源项目 - [HandyJSON] 在Swift中优雅地处理JSON

ReactJS/Next.js:CRA 代理不适用于 Next.js(尝试将 API 请求路由到 Express 服务器)

HandyJSON:Swift语言JSON转Model工具库

handyJson的技术内核

Swift + iOS,HANDYJSON 线程 1:EXC_BAD_ACCESS(代码=1,地址=0x20c7f4194)

老版本 CRA 中使用 TS 出现的报错问题