首页 > 系统 > iOS > 正文

iOS setValue和setObject的区别

2019-11-09 18:13:07
字体:
来源:转载
供稿:网友

网上关于setValue和setObject的区别的文章很多,说的并不准确,首先我们得知道:setObject:ForKey: 是NSMutableDictionary特有的;setValue:ForKey:是KVC的主要方法

话不多说,上代码:

- (void)viewDidLoad {    [super viewDidLoad];    //setObject和setvalue的区别    NSMutableDictionary *dic = [NSMutableDictionary dictionary];    NSMutableArray *array = [NSMutableArray array];    [array insertObject:@"1" atIndex:0];    [array insertObject:@"2" atIndex:1];        [dic setObject:[NSNull null] forKey:@"haha"];    [dic setObject:[NSNull null] forKey:array];    [dic setObject:[NSNull null] forKey:[NSNull null]];    [dic setObject:@1 forKey:@""];    [dic setObject:@"" forKey:@1];    [dic setObject:nil forKey:@""];    [dic setObject:@"" forKey:nil];    NSLog(@"dic:%@",dic);    //setobject中的key和value可以为除了nil外的任何对象    NSLog(@"*****************");        [dic removeAllObjects];    NSLog(@"dic:%@",dic);        [dic setValue:[NSNull null] forKey:@"haha"];    [dic setValue:[NSNull null] forKey:array];    [dic setValue:[NSNull null] forKey:[NSNull null]];    [dic setValue:@1 forKey:@""];    [dic setValue:@"" forKey:@1];    [dic setValue:nil forKey:@""];    [dic setValue:@"" forKey:nil];    [dic setValue:@"" forKey:@"hehe"];    [dic setValue:array forKey:@""];    NSLog(@"dic2:%@",dic);    //setValue中的KEY只能为字符串 value可以为nil也可以为空对象[NSNull null]    }

程序崩溃,原因就在这几个警告,由代码得出以下结论:

setobject中的key和value可以为除了nil外的任何对象

setValue中的key只能为字符串 value可以为nil也可以为空对象[NSNull null]以及全部对象


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表