对字典和数组进行下列操作时会产生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的操作的更多相关文章

  1. iOS中的crash防护(二)KVC造成的crash

      接上篇< iOS中的crash防护(一)unrecognized selector sent to instance> 我们攻克了找不到方法实现的crash,这一篇我这里主要分析一下在 ...

  2. iOS中常见 Crash 及解决方案

    来源:枫影JustinYan 链接:http://justinyan.me/post/1609 一.访问了一个已经被释放的对象 在不使用 ARC 的时候,内存要自己管理,这时重复或过早释放都有可能导致 ...

  3. iOS 中捕获截屏操作

    转自:iOS知识小集 在iOS 7后,苹果提供了UIApplicationUserDidTakeScreenshotNotification通知来告诉App用户做了截屏操作.苹果的描述如下: // T ...

  4. iOS中NSFileManager文件常用操作整合

    //获取Document路径 + (NSString *)getDocumentPath { NSArray *filePaths = NSSearchPathForDirectoriesInDoma ...

  5. iOS中NSDate常用转换操作整合

    //当前时间格式化, 例:YYYY-MM-dd-EEEE-HH:mm:ss + (NSString *)getCurrentDataWithDateFormate:(NSString *)format ...

  6. iOS 中多线程的简单使用

    iOS中常用的多线程操作有( NSThread, NSOperation GCD ) 为了能更直观的展现多线程操作在SB中做如下的界面布局: 当点击下载的时候从网络上下载图片: - (void)loa ...

  7. iOS:项目中疑难Crash问题集锦

    项目中疑难Crash问题集锦 iOS App运行中遇到Crash的情况相信大家都遇到过,开发和者测试中遇到了可能很方便的办法就是直接拿着设备连接一下,然后使用Xcode自带的工具就可以解析出Crash ...

  8. 关于ios中的文本操作-简介

    来源:About Text Handling in iOS 官方文档 iOS平台为我们提供了许多在app中展示文本和让用户编辑文本的方式.同时,它也允许你在app视图中展示格式化的文本和网页内容.你可 ...

  9. iOS 中SQLite数据库操作

    在iOS中实现SQLite数据库的操作:1.导入框架(libsqlite3.0.tbd) 2.导入头文件<sqlite3.h> 3.实现数据的增删改查 实现简单 SQLite数据库操作 的 ...

随机推荐

  1. 关于mysql 5.6.24 的my.ini配置问题

  2. Linux下gcc,g++,gdb,scon部分用法笔记

    1 Ubuntu下编译安装GCC-4.1.2 拷贝gcc-4.1.2.tar.bz2(我下载的压缩文件)到/usr/local/src 解压 新生成的gcc-4.1.2这个目录被称为源目录,用${sr ...

  3. sharedMesh变量

    在unity引擎中, 一般情况不建议用sharedMesh变量去写操作,建议只读,因为那会对mesh永久改变 变

  4. laravel 添加第三方扩展库

    确定需要安装的位置 common.php测试代码 打开cmd 跳转到项目根目录下运行命令 composer install 打开文件 vender/composer/autoload_classmap ...

  5. VsVim的快捷键使用

    .插入命令(可配合数字使用) i 在当前位置前插入 I 在当前行首插入 a 在当前位置后插入 A 在当前行尾插入 o 在当前行之后插入一行 O 在当前行之前插入一行 ni/a/o/I/A/O<E ...

  6. 一个简单sql注入的poc

    最近在提高自己编程能力,拿一些实用的小工具练下.该脚本为python语言,主要涉及模块urllib,re. 功能:验证CmsEasy5.5爆账号密码 实验用源码:http://pan.baidu.co ...

  7. X11 五子棋

    #include <X11/Xlib.h> #include <stdlib.h> #include <X11/keysym.h> #include <cst ...

  8. C# 语言规范_版本5.0 (第16章 异常)

    1. 异常 C# 中的异常用于处理系统级和应用程序级的错误状态,它是一种结构化的.统一的和类型安全的处理机制.C# 中的异常机制非常类似于 C++ 的异常机制,但是有一些重要的区别: 在 C# 中,所 ...

  9. sqlalchemy相关知识

    #!/usr/bin/env python3.5 # -*- coding:utf8 -*- # 多对多关联 from sqlalchemy import Table, Column, Integer ...

  10. 【Time系列三】简单的计时器(秒表)

    之前在 "for与while的洪荒之力" 中介绍到计时器,不过那样弄感觉好麻烦啊, 碰巧昨天学Java的时候,讲到求余可以用来求时间 ! for与while链接: http://w ...