swift中怎么处理因为网络数据错误导致app崩溃和闪退

swift中怎么处理因为网络数据错误导致app崩溃和闪退,第1张

闪退的原因和处理方法 

 1、缓存垃圾过多

平时在使用软件的过程中,会产生一些垃圾文件,如果长时间不清理会导致手机越来越卡,也会出现闪退状况。

进入设置–应用程序——全部——找到有问题的应用程序,清除数据或者缓存。(注:清除数据,会清除掉应用的个人设置、账户信息等。)

2、运行程序过多

如果不进行设置,很多软件都会自己运行,而手机后台程序过多会造成内存不足,从而造成应用闪退。如出现软件闪退,可先清理内存后再试试。

3、手机杀毒软件

部分手机软件存在着恶意代码,会被杀毒软件拦截因而不能正常进入,应该通过绿色下载平台或者使用软件商店来下载安全系数较高的游戏。

(注:以上三个原因都现在都可以通过安全软件清理,轻松解决。但需要注意在删除一些大型文件时请谨慎。)

4、应用版本问题

如果应用的版本较低,会导致应用软件不兼容,造成闪退。如果是版本太旧,更新为新版本即可。

如新版本如果出现闪退,是应用改版本还在调试中,无需担心,会很快修复。

5、网速问题

部分软件需要一个稳定的网络,使用的是2G/3G网络,造成闪退的可能性比较大,建议在有WiFi的情况下玩比较好。

6、缺少数据包

一些大型游戏需要数据包才能运行。所以要先安装好数据包才能使用。

7、系统不兼容

部分软件对版本有一定的要求,如果系统版本过低,软件是不能支持的,所以会闪退。

8、分辨率不兼容

一些软件对手机分辨率有一定的要求,如果手机分辨率不兼容,有部分软件就容易出现闪退或其它错误。

在Swift中, 编译器不再支持预处理指令。作为替代,它使用编译时的属性和build配置

在 Xcode 中 Build Setting 界面, 搜索 flags , 最下面就是.

我们可以通过在不同的环境下设置不同的 Tag , 来控制版本.

可以使用 #if 判定build的参数动态编译

自定义Log

还有一种方式实现版本管理就是通过切换不同的Target. 这里在参考中有详解.

在 腾讯Bugly官网 登录账号, 注册应用. 获取到AppKey.

在 文档中心 , 查看具体使用

先讲讲Object-C的方案

那怎么分析呢?

小节:

在Swift中怎么拦截crash, 避免程序崩溃呢?

目前除了调用 try-catch 方法, 并无其他比较好的解决方案, 但是这也是只能拦截 Foundation 框架里面的 NSArray , NSString 这种类型的. 并不能处理Array, String这种结构体.

既然写到这里, 推荐一个大佬写的 Swift 框架 GodEye , 里面有一个 CrashEye , 就是通过NSSetUncaughtExceptionHandler 和 signal(SIGABRT, SignalHandler), 来处理异常, 但是无法避免崩溃, 具体我在 iOS崩溃日志 里有提到.

参考

最详细 Xcode的Targets管理项目的公开版本、测试版本、预发布版本等等

OC版LSSafeProtector

Swift版CrashEye


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11834537.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存