1.遍历同时修改数组内容导致崩溃

bugly上bug提醒如下图所示,经检查发现,可能是页面上数据加载惹得祸. 页面加载过程是这样的,首先进入页面,初始化页面,将本地数据加载到array中刷新tableView,同时执行网络请求,构建array完了将数据放在tableView上面. 可能出现问题的地方时, 初始化页面时候,tableView遍历array将数据放在tableView上,遍历期间获取到网络请求的数据,同时开始处理array,然后就导致这个崩溃, bugly提醒此bug出现在ios 10-10.2, 我自己项目崩溃的ios系统版本也在此范围内.

2.DispatchQueue.once的注意事项

最近的项目开发中就犯了一个错误. 某个方法在多个地方都可能会被调用, 这个方法中有一句DispatchQueue.once代码, 代码中需要用到成员变量是可空类型, 于是就出问题了, 首次执行到DispatchQueue.once中代码时, 如果用到的成员变量是nil, 那么会导致初始化失败. 而后续再次给成员变量赋值后, 重新调用这个方法, DispatchQueue.once代码不会被执行, 导致程序出错. 正确的解决方案是, DispatchQueue.once代码中不要使用可选类型!!!

3.处理webView中alert不当导致崩溃

事情是这样的, 在App的菜单栏其中有一栏内容是一个h5网页(地图页,地图获取定位失败网页会alert提醒). 我在runJavaScriptAlertPanelWithMessage方法中接收alert弹窗并使用系统的UIAlertController弹窗提醒用户, 用户点击确定或取消时候执行completionHandler闭包, 弹出UIAlertController代码是这样的self.present(alertController, animated: true, completion: nil), 问题就出在这行代码, 当用户点击此菜单选项, 尚未弹出alert之前, 用户切换了菜单选项, 那么就会导致self不在window层级中, 程序崩溃! 解决方案: 查找当前应用最顶层的一个控制器来弹窗提醒.

4.网络请求错误码汇总

线上环境的软件报错code=4. 最终查到对应错误为public var kCFStreamErrorSOCKS5SubDomainMethod: Int { get } /* Error code is the server's desired negotiation method*/, 但是最终还是不晓得到底是什么错误. 查找错误码对应错误过程中也废了不少的周折,这里统一纪录一下错误码对应的错误信息吧!

目前我了解到的错误码有三种类型CFNetworkErrors, CFSocketErrorkCFStreamError*开头对应的错误码.

查找错误码的方法: 使用对应的错误码初始化enum类型, 获取变量类型.

5.NSObjectSafe解决OCSelector等崩溃问题

使用这个仓库可以拦截大部分的数组越界, 找不到方法等的oc崩溃问题;

https://github.com/jasenhuang/NSObjectSafe

Error Note1:错误修复笔记的更多相关文章

  1. XCODE 出现 The operation couldn't be completed.(LaunchServicesError error 0.)错误修复

    XCODE 出现 The operation couldn't be completed.(LaunchServicesError error 0.)错误修复   XCODE 出现 The opera ...

  2. 网络错误修复工具:Network Fault Repair Tool Build20160414

    ::请勿轻易修改此文件,以避免不可预知的错误 gwsbhqt@163.com @echo off color 0A setlocal enabledelayedexpansion title Netw ...

  3. 解决ngnix服务器上的Discuz!x2.5 Upload Error:413错误

    1.修改php.ini sudo nano /etc/php5/fpm/php.ini #打开php.ini找到并修改以下的参数,目的是修改上传限制 max_execution_time = 900 ...

  4. ArcGIS10.1 api for Flex开发用于ArcGIS 9.3时QueryTask 'Error #2032'错误的解决方案

    因客户GIS软件需求,将应用降级到低版本ArcGIS9.3,不仅数据有些样式.配色.字符有些问题,API也要相应“降级”,解决如下: 利用9.3+flex做QueryTask时候出现了[RPC Fau ...

  5. AjaxControlToolkit MaskedEdit Unspecified error 未指定错误

    使用AjaxControlToolkit 里面的 MaskedEditValidator控件,IE里面在如下的js中出现未指定(Unspecified error)错误, if (document.a ...

  6. Delphi 通信报Asynchronous socket error 10053错误的一个解决方法

    在使用Delphi中的TClientSocket和TServerSocket进行通信编程时,当使用TClientSocket这方的客户端使用TClientSocket.close断开连接并退出程序时, ...

  7. Installation error INSTALL_FAILED_VERSION_DOWNGRADE错误

    最近折腾了一下Robotium自动化测试框架,发现问题还挺多,刚刚解决了一个问题,总算是把环境搞定了,可是一运行测试用例,发现又报Installation error INSTALL_FAILED_V ...

  8. 解决SQL Server管理器无法连接远程数据库Error: 1326错误

    解决SQL Server管理器无法连接远程数据库Error: 1326错误 我们在在使用SQL Server时都会遇到使用SQL Server Management Studio无法连接远程数据库实例 ...

  9. MySQL ERROR 1045错误解决办法

    今天在安装MySQL数据库时,有安装过程中报ERROR 1045错误,网上查了一下,解决方法如下: 1.对于安装过程中该错选择"skip"继续向下安装,完成安装: 2.在MySQL ...

随机推荐

  1. csharp: using OleDb Getting the identity of the most recently added record

    /// <summary> /// 执行SQL语句,返回影响的记录数 /// </summary> /// <param name="SQLString&quo ...

  2. Found 1 slaves: Use of uninitialized value in printf at /usr/local/percona-toolkit/bin/pt-online-schema-change line 8489

    1. problem description: as the title show, i miss the first problem using pt-online-schema-change to ...

  3. windows 2003 安装 MVC 环境 404错误,无法找到该页

    在windows server 2003 IIS6 系统安装 DotNet 4.0 + MVC3 环境后, .cshtml 文件依然无法运行,404错误 解决方案:查看处理程序隐射,如果没有.csht ...

  4. Unity --- 关节组件

    一.简介 Unity提供了下面的关节组件:铰链关节(Hinge Joint).固定关节(Fixed Joint).弹簧关节(Spring Joint).角色关节(Character Joint).可配 ...

  5. Aysnc-callback with future in distributed system

    Aysnc-callback with future in distributed system

  6. Android fastjson

    Fastjson介绍 Fastjson是一个Java语言编写的JSON处理器. 1.遵循http://json.org标准,为其官方网站收录的参考实现之一. 2.功能qiang打,支持JDK的各种类型 ...

  7. HTML 5篇(持续更新)

    1.sessionStorage .localStorage 和 cookie 之间的区别 (一)共同点:都是保存在浏览器端,且同源的. (二)区别:cookie数据始终在同源的http请求中携带(即 ...

  8. C++文件操作:打开文件和写入文件 zz

    http://www.weixueyuan.net/view/5825.html 如果程序的运行结果仅仅显示在屏幕上,当要再次查看结果时,必须将程序重新运行一遍:而且,这个结果也不能被保留. 如果希望 ...

  9. js 数据格式化

    //金额增加千分号formatPrice(123456.78) = 123,456.78 function formatPrice(val) { var parts = val.toString(). ...

  10. 【Leetcode】【Medium】Sqrt(x)

    Implement int sqrt(int x). Compute and return the square root of x. 解题思路1,o(log(n)): 像这种从初始遍历查找匹配的任务 ...