您当前的位置: 首页 >  xcode

iOS项目升级到Xcode11后编译运行崩溃的原因及解决

发布时间:2019-11-19 14:48:26 ,浏览量:0

好久没写Blog了,今天来一发

一个iOS项目,今天第一次用Xcode11打开,出现了若干错误,逐一修复后,编译运行,App可耻的崩鸟…

在这里插入图片描述

调试发现崩溃出现在如下一行中:

在这里插入图片描述

这个在之前的Xcode10中运行是没有问题的,那么可能的原因就是新的Swift运行时在运行检查时更加严格了,在新的Swift runtime中hashValue返回的值超出了Int32可表示的范围。

做个测试:

在这里插入图片描述

显然在之前的Runtime中返回的结果一定是小于Int32.max的,所以运行不会崩溃。

因为id与数据库中的表字段对应,如果要修改成64位,势必要改动数据库的表结构,所以这里用一个临时的办法规避:

let id = Int32(truncatingIfNeeded: UUID().hashValue)

在这里插入图片描述

That’s all,谢谢观赏 😉

关注
打赏
1688896170
查看更多评论

暂无认证

  • 0浏览

    0关注

    108253博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.1796s