IOS 中会发生crash的操作
对字典和数组进行下列操作时会产生crash:
对于字典来说:
查询时,key=nil 或者 key=null 时都能正常运行
插入时,,key=nil 或者 key=null 都会crash
对于数组来说
index越界会crash
添加对象为nil时会crash
NSDictionary *dic = @{@"key":@"value"};
NSString *value = [dic objectForKey:nil];
value = [dic objectForKey:[NSNull null]];
NSMutableDictionary *mutDic = [dic copy];
value = [mutDic objectForKey:nil];
value = [mutDic objectForKey:[NSNull null]];
value = [mutDic objectForKey:[NSNull null]];
// [mutDic setObject:@"123" forKey:nil];crash
// [mutDic setObject:nil forKey:@"123"];crash
// [mutDic setObject:[NSNull null] forKey:@"key"];crash
// [mutDic setObject:@"value" forKey:[NSNull null]];crash
// [mutDic removeObjectForKey:nil]; //crash
// [mutDic removeObjectForKey:[NSNull null]];//crash
//
NSArray *arr = @[@(1),@(2),@(3)];
// value = [arr objectAtIndex:4];//crash
NSMutableArray *mutArr = [arr mutableCopy];
// [mutArr insertObject:@(5) atIndex:5];//crash
// [mutArr removeObjectAtIndex:5]; //crash
// [mutArr replaceObjectAtIndex:5 withObject:@"5"];//crash
// [mutArr insertObject:nil atIndex:0]; //crash
[mutArr insertObject:[NSNull null] atIndex:0];
[mutArr replaceObjectAtIndex:0 withObject:[NSNull null]];
IOS 中会发生crash的操作的更多相关文章
- iOS中的crash防护(二)KVC造成的crash
接上篇< iOS中的crash防护(一)unrecognized selector sent to instance> 我们攻克了找不到方法实现的crash,这一篇我这里主要分析一下在 ...
- iOS中常见 Crash 及解决方案
来源:枫影JustinYan 链接:http://justinyan.me/post/1609 一.访问了一个已经被释放的对象 在不使用 ARC 的时候,内存要自己管理,这时重复或过早释放都有可能导致 ...
- iOS 中捕获截屏操作
转自:iOS知识小集 在iOS 7后,苹果提供了UIApplicationUserDidTakeScreenshotNotification通知来告诉App用户做了截屏操作.苹果的描述如下: // T ...
- iOS中NSFileManager文件常用操作整合
//获取Document路径 + (NSString *)getDocumentPath { NSArray *filePaths = NSSearchPathForDirectoriesInDoma ...
- iOS中NSDate常用转换操作整合
//当前时间格式化, 例:YYYY-MM-dd-EEEE-HH:mm:ss + (NSString *)getCurrentDataWithDateFormate:(NSString *)format ...
- iOS 中多线程的简单使用
iOS中常用的多线程操作有( NSThread, NSOperation GCD ) 为了能更直观的展现多线程操作在SB中做如下的界面布局: 当点击下载的时候从网络上下载图片: - (void)loa ...
- iOS:项目中疑难Crash问题集锦
项目中疑难Crash问题集锦 iOS App运行中遇到Crash的情况相信大家都遇到过,开发和者测试中遇到了可能很方便的办法就是直接拿着设备连接一下,然后使用Xcode自带的工具就可以解析出Crash ...
- 关于ios中的文本操作-简介
来源:About Text Handling in iOS 官方文档 iOS平台为我们提供了许多在app中展示文本和让用户编辑文本的方式.同时,它也允许你在app视图中展示格式化的文本和网页内容.你可 ...
- iOS 中SQLite数据库操作
在iOS中实现SQLite数据库的操作:1.导入框架(libsqlite3.0.tbd) 2.导入头文件<sqlite3.h> 3.实现数据的增删改查 实现简单 SQLite数据库操作 的 ...
随机推荐
- DOM学习笔记--入门1
HTML DOM 是关于如何获取.修改.添加或删除 HTML 元素的标准. 首先节点有很多种,不仅仅HTML元素是节点,尤其 要注意文本节点的存在. 根据 W3C 的 HTML DOM 标准,HTML ...
- cout 格式化的一些方法
cout格式化的方式有很多,和C中的printf相比较,在实现方式上更加容易理解. 1.计数进制. 1.十六进制:hex 2.八进制:oct 3.十进制:dec(默认) 在控制进制的时候,可以使用两种 ...
- POJ 2484 A Funny Game
博弈. $n>=3$,后手赢,否则先手赢. #pragma comment(linker, "/STACK:1024000000,1024000000") #include& ...
- MVC 的 视图中 @section 是什么作用?
可以定义一个渲染块,这个渲染块可以在LayoutPage里面引用,使用Html.RenderSection("section名称"); 可以指定一个bool参数指定如果Conten ...
- LeetCode 385. Mini Parse
Given a nested list of integers represented as a string, implement a parser to deserialize it. Each ...
- DataGrid 导出数据到 Excel
Private Sub GridToExl_Click() On Error Resume Next If DataGrid1.Columns.Count = 0 Then MsgBox " ...
- python socket服务器进行远程升级
# coding:utf-8from socket import *import binascii, linecache, time ServerUrl = "127.0.0.1:900&q ...
- CharSequence 接口
java中有些方法需要用到CharSequence 类型的参数,笔者百度了一下,总结出一下几点: 1.CharSequence 是一个接口,可以直接用“=”赋值一段字符串,但是不能用new新建一个对象 ...
- C#第十三天
1.单例模式 1)将构造函数私有化 2)提供一个静态方法,返回一个对象 3)创建一个单例 namespace 单例模式 { public partial class Form1 : Form { pu ...
- Excel 复制Sql查询结果错位
SELECT TOP 30000 REPLACE(REPLACE(T1.ReceiverName,CHAR(10),' '),CHAR(13),' ') AS ReceiverName, REPLAC ...