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. 一个对inner jion ...on 的sql多表联合查询的练习

    create database practiceSql; use practiceSql; -- create table student( `id` bigint not null auto_inc ...

  2. <Android Framework 之路>BootAnimation(1)

    介绍 开机动画,BootAnimation,就是Android手机开机郭晨各种以一个展示给用户的界面,实际是一个多个帧组成的动画,在界面上进行一帧一帧的播放,形成开机动画的效果. 本文针对Androi ...

  3. #学习tips——写给自己的语录

    用编程证明自己的观点! "我以为我懂了?"-- 花1/3的时间去学去记,剩下的时间应用做记忆实战. 记录一个转变 2018.6.7 (英文字幕-->无字幕!)good job ...

  4. 【Udacity】数据的集中程度:众数、平均数和中位数

    重视Code Review 极致--目标是成为优秀的开发者 Data tells a story!(数据会讲故事) 分析过程对于建模非常的重要,可以帮助我们减少实际上不相关的特征被错误的加入到模型中, ...

  5. python 测试:wraps

    任务: 现有两个函数: def print1(): print("I am print1") def print2(): print("I am print2" ...

  6. Oracle数据库从入门到精通 多表查询知识以及范例

    视频课程:李兴华 Oracle从入门到精通视频课程 学习者:阳光罗诺 视频来源:51CTO学院 总体内容: 多表查询的意义以及基本问题. 表的连接查询 SQL:1999语法标准对多表查询的支持. 数据 ...

  7. c# 知识学习

    1.C#基础知识梳理系列 2.详解C#委托,事件与回调函数 3.C#制作Windows service

  8. Python学习---重点模块之logging

    日志级别 日志级别  critical > error > warning > info > debug, 默认是从warning开始打印 import logging # 日 ...

  9. 图的存储结构(邻接矩阵与邻接表)及其C++实现

    一.图的定义 图是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为: G=(V,E) 其中:G表示一个图,V是图G中顶点的集合,E是图G中顶点之间边的集合. 注: 在线性表中,元素个数可以为零, ...

  10. Lovable eccentric

    It took him four years to stage this elaborate joke simply to prove that critics do not always know ...