setvalue和setobject
2019-10-03 本文已影响0人
渡边君WM
setValue forKey :
1、方法是KVC(键-值编码),方法是在NSObject对象中创建的,也就是说所有的oc对象都有这个方法,所以可以 用于任何类
例子:
People *p1 = [[People alloc] init];
[p1 setValue:@"mkj" forKey:@"name"];
当对象有name属性的时候就是通过KVC来赋值
2、value可以是nil,如果为nil,则自动调用removeObject forkey方法
3、key必须为string类型的
4、取值的时候valueforkey的key如果包含@符号,则取值时会自动把@去掉,程序crash
setObject forKey:
1、方法是NSMutabledictionary特有的;
2、value不可以为nil,如果为nil,则程序崩溃在此;但value可以为[NSNull null],[NSNull null]为一个空对象,并不是nil;
3、Key的对象是一个id类型,并不是NSString,只不过我们经常使用NSString而已。
4、取值的时候objectforkey的key如果包含@符号,无影响,可以正常取出该值