Dictionary and Array value cannot be nil

Dictionary value cannot be nil

Terminating app due to uncaught exception ‘NSInvalidArgumentException‘, reason: ‘*** -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[2]‘

*** First throw call stack:

NSString *a;

dic2 =
@{

@"key":@"value",

@"ko":@"",

@"xue":a

};

Array element cannot be nil

Terminating app due to uncaught exception ‘NSInvalidArgumentException‘, reason: ‘*** -[__NSPlaceholderArray initWithObjects:count:]: attempt to insert nil object from objects[2]‘

*** First throw call stack:

NSString *a;

array2 = @[@"",@"0",a];

测试:数组不能有nil的对象,字典不能插入nil的值

-(void)setData{

NSDictionary *dic1;

NSArray *array1;

dic1 = @{};

array1 = @[];

NSLog(@"dic1:%@",dic1);

NSLog(@"array1:%@",array1);

NSDictionary *dic2;

NSArray *array2;

NSString *a;

//    a=nil;

dic2 = @{

@"key":@"value",

@"ko":@"",

@"xue":a

};

array2 = @[@"",@"0",a];

NSLog(@"dic2:%@",dic2);

NSLog(@"array2:%@",array2);

}

时间: 2024-10-11 17:02:23

Dictionary and Array value cannot be nil的相关文章

C# List, Array, Dictionary相互转换

将Array转换为List 将List转换为Array 将Array转换为Dictionary 将Dictionary 转换为Array 将List转换为Dictionary 将Dictionary转换为List 首先,我们定义一个"Student"类,它有三个自动实现属性. class Student { public int Id { get; set; } public string Name { get; set; } public string Gender { get; s

iOS常用方法

1.磁盘总空间大小 + (CGFloat)diskOfAllSizeMBytes {     CGFloat size = 0.0;     NSError *error;     NSDictionary *dic = [[NSFileManager defaultManager] attributesOfFileSystemForPath:NSHomeDirectory() error:&error];     if (error) { #ifdef DEBUG         NSLog(

iOS 常用公共方法

iOS常用公共方法 1. 获取磁盘总空间大小 //磁盘总空间 + (CGFloat)diskOfAllSizeMBytes{ CGFloat size = 0.0; NSError *error; NSDictionary *dic = [[NSFileManager defaultManager] attributesOfFileSystemForPath:NSHomeDirectory() error:&error]; if (error) { #ifdef DEBUG NSLog(@&quo

[课堂笔记]斯坦福大学公开课:IOS 7应用开发 lecture4

1.All objects in an array are held onto strongly in the heap.So as long as that array itself is in the heap,as long as someone has a strong pointer to the array itself,all the objects the are in the array will stay in the heap as well.Because it has

iOS开发>学无止境 - 遍历Model类的属性并完善使用Runtime给Model类赋值

在前几天的一篇博客<iOS开发之使用Runtime给Model类赋值>中介绍了如何使用运行时在实体类的基类中添加给实体类的属性赋值的方法,这个方法的前提是字典的Key必须和实体类的Property Name相同,然后通过运行时来生成和执行Setter方法给Model类的属性赋值. 通 过Runtime来给Model类属性赋值的好处是多多的,它便于代码的后期维护,并且提高了开发效率.当你拿到解析后的字典时你不用一个一个的通过 key去把字典的值赋值给相应的Model类的属性,本篇博客中会给出如何

Swift 学习 --- 基础&lt;一&gt;

// Playground - noun: a place where people can play import UIKit var str = "Hello, playground" print("A"); print("A") // 如果同一行有有段代码用 ';'隔开 // 默认自带换行符 println("Alice"); println("Peter"); println("Tommy

黑马程序员_OC学习笔记之Foundation框架集合类

OC--集合类 1.OC集合类包括NSArray,NSSet,NSDictionary都是以面向对象的方式操作数组,而且OC数组不像C语言中的数组只能存放同一种数据类型,它可以存放任意类型的对象,但是不能存放非OC对象类型如基本数据类型int,struct,enum等 2.OC数组是以对象的方式存在,因此在创建的时候需要为创建的对象前面加* 3.NSArray数组一旦创建就决定了是不是可变,而且永远是可变或不可变 4.NSArray数组和子类NSMutableArray的基本操作: 1>使用NS

plist文件操作总结

plist文件类 (负责文件的读写,删除整个文件) #import "Plist.h" @implementation Plist - (void)writePlist:(NSMutableDictionary*)dictionary { NSArray *array = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDirectory, YES); NSString *docPath = [[array

plist总结

plist是个好东西: 1.不要太看得起plist,他没你想像的那么强大,不是跟一个万能仓库一样, 什么东西都可以存取.一般说来,支持的数据类型有(NS省略)Dictionary.Array.Boolean.Data.Date.Number. String这些类型,其他的类型支持,所以一般需要转化一下再存.我傻傻的以为它很厉害,放了一个View给它,企图把View放到Array里面包起 来,再把Array作为最外层的Dictionary的Value字段....对,没错,一个View也是一个obj