美文网首页iOS开发
iOS开发中防止数组越界导致的崩溃(升级版)

iOS开发中防止数组越界导致的崩溃(升级版)

作者: 梁森的简书 | 来源:发表于2018-06-01 10:33 被阅读834次

背景:

之前写过一篇博客(地址:https://blog.csdn.net/u010105969/article/details/56011127)也是关于防止数组越界崩溃的,可当时只考虑到了数组在调用objectAtIndex:这个方法的情况,而没有考虑arr[3]这种直接从数组中取数据的情况,所以说当时的防止数组越界崩溃的预防方法还是有漏洞的,在看了别人写的一篇文章后让我觉得当初的防数组越界崩溃的方法可以升级一下了。

思想:

和之前的思路是一样的也是替换方法,只不过多替换了一个objectAtIndexedSubscript:方法,这个方法是在通过arr[index]下标的形式调用的。

这里说一下NSArray的几个类簇

__NSArray0:空数组

__NSArrayI:不可变数组

__NSArrayM:可变数组

_NSSingleObjectArrayI:单元素数组

为了在Release模式不崩溃,bug模式下崩溃(为了我们更好地调试bug),我让替换方法只在Release模式下调用。

demo地址:https://gitee.com/liangsenliangsen/anti__boundary_collapse

补充:

这里有个demo,不仅防止数组越界崩溃,还能防止字典、字符串越界造成的崩溃

demo地址:https://gitee.com/liangsenliangsen/safeObject.git

本篇文章到这里就结束了,愿大家加班不多工资多,男同胞都有女朋友,女同胞都有男朋友。😊

相关文章

  • iOS开发中防止数组越界导致的崩溃(升级版)

    背景: 之前写过一篇博客(地址:https://blog.csdn.net/u010105969/article/...

  • ios开发之防数组越界

    ios开发中,不免会遇到数组越界的问题,而当数组越界时往往会导致程序的崩溃,结局的方法之一就是在数组的分类中使用r...

  • iOS数组越界的保护

    先上一段代码 在iOS中, 上述两种取数组元素的方法都会导致程序崩溃, 称为"数组越界", 那么在日常开发中,因为...

  • iOS开发中碰到的几种常见的崩溃方式

    在开发的过程中,主要碰到过如下几种导致项目崩溃的方式: 1、数组越界导致的崩溃。 -[__NSArrayI obj...

  • 防止数组越界崩溃

    1. 数组越界 访问为空是我们的app的一大元凶,当访问数组经常会访问为空,这是就会抛出异常导致app闪退,有时当...

  • iOS奔溃信息类型捕捉与分析

    iOS 异常奔溃类型分类 1.数组越界导致的崩溃 2.数据集合类型,如字典、数组中插入元素时,插入空指针nil 3...

  • iOS数组越界问题处理

    在iOS开发中经常回因为数组越界而导致程序崩溃,那么怎么解决这一问题呢?我们需要给NSArray新建一个类的拓展。...

  • iOS--再也不用担心数组越界

    最近在网易云捕上看到一些数组越界导致的崩溃日志,所以决定数组的越界做一些处理。 在项目的开发中,笔者一般遇到的问题...

  • iOS-避免数组崩溃(Method Swizzling)

    在项目开发过程中,经常因为NSArray数组越界或者value值为nil等问题导致的崩溃,直接对NSArray进行...

  • iOS array数组防越界

    iOS开发中常用到array数组,本文介绍一个防止数组越界的方法,分享给有需要的人;首先创建NSArray的Cat...

网友评论

    本文标题:iOS开发中防止数组越界导致的崩溃(升级版)

    本文链接:https://www.haomeiwen.com/subject/lxpedftx.html