美文网首页
运行时解决数组越界,数组和字典插入空值

运行时解决数组越界,数组和字典插入空值

作者: xiao小马哥 | 来源:发表于2018-02-26 16:39 被阅读61次

前言

在Bugly上面发现一些数组越界的bug,在正常的测试中,一直都发现不到问题,为了优化体验,想做一个越界的判断,可又不想改变之前的写法,所以想到运行时解决这个问题。

以前去数组元素的方法有两种,一个是直接通过下标去取值,array[1]或者[array objectAtIndex:3]
所以我写了一个分类,用运行时替换这两种方法,包括可变数组和不可变数组

还有就是给字典或者数组设置了空对象,导致崩溃
👇是自己测试的方法,都没有遇到崩溃的问题,如果还有对数组和字典的操作导致崩溃,直接Issues我。


NSArray *array0 = @[];
NSLog(@"%@",array0[3]);
NSLog(@"%@",[array0 objectAtIndex:3]);

array0 = @[@"1"];
NSLog(@"%@",array0[3]);
NSLog(@"%@",[array0 objectAtIndex:3]);

array0  = @[@"1",@"2",@"3"];
NSLog(@"%@",array0[3]);
NSLog(@"%@",[array0 objectAtIndex:3]);

NSMutableArray *muArray0 = @[].mutableCopy;
NSLog(@"%@",muArray0[3]);
NSLog(@"%@",[muArray0 objectAtIndex:3]);

[muArray0 addObject:@"1"];
NSLog(@"%@",muArray0[3]);
NSLog(@"%@",[muArray0 objectAtIndex:3]);

[muArray0 addObject:@"2"];
NSLog(@"%@",muArray0[3]);
NSLog(@"%@",[muArray0 objectAtIndex:3]);

NSObject *objc = nil;
[muArray0 addObject:objc];
NSDictionary *dict = @{@"12":objc};
NSDictionary *dict1 = [NSDictionary dictionaryWithObject:objc forKey:@"222"];
NSMutableDictionary *muDict = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"value",@"key",objc,@"key1", nil];
[muDict setObject:objc forKey:@"111"];
NSDictionary *dict2 = [NSDictionary dictionaryWithObjectsAndKeys:objc,@"key1", nil];

传送门

相关文章

  • 运行时解决数组越界,数组和字典插入空值

    前言 在Bugly上面发现一些数组越界的bug,在正常的测试中,一直都发现不到问题,为了优化体验,想做一个越界的判...

  • iOS常见的崩溃

    数组越界 字面量数组和字典插入nil值 字典 Unrecognized Selector NaN崩溃 富文本初始化...

  • iOS数据安全-null空值与数组越界处理

    一是服务端返回数据为null 可以使用NullSafe进行避免 二是字典,数组插入空值 三是数组越界 解决办法: ...

  • iOS崩溃(crash)案例分析

    本文Crash Demo目录:1.数组越界2.数组、字典插入空值3.block为空4.调用未实现方法(unreco...

  • 学习OC

    1.数组越界,字典取空问题解决 实现一个数组或者字典的扩展方法,判断数组或者字典是否为空或者越界,如果是返回对象,...

  • 利用系统方法捕捉crash

    首先我们要知道crash 的类型有哪些1.数组越界导致的崩溃2.数据集合类型,如字典、数组中插入元素时,插入空指针...

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

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

  • runtime 交换方法应用

    解决数组添加空值崩溃 解决字典添加空值崩溃 监控点击事件

  • IOS基础知识-异常崩溃处理篇

    常见的崩溃类型 1.数组越界,nil值初始化导致的崩溃。2.对字典插入nil值,或者读取NSNULL导致的崩溃。3...

  • iOS 常见crash的简单处理

    在日常项目中,常见的crash包括:给NSNull发送消息,数组越界,字典传空值等。我们可以对这些crash简单的...

网友评论

      本文标题:运行时解决数组越界,数组和字典插入空值

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