NSUserDefault、NSMutableDictionary的setValue和setObject区别

NSDictionary:        setValue: forKey:@""

NSMutableDictionary: setObject: forKey:@""   value是不能够为nil的,不然会报错。
                                             setObject:forKey:的key可以是任何类型
                     setValue: forKey:@""    value能够为nil,但是当value为nil的时候,会自动调用removeObject:forKey方法
                                             setValue:forKey:中key的参数只能够是NSString类型

                                             另外这两个方法 set动态数组是没有问题的,但会变成不可变的
NSUserDefault:      setObject: forKey:@""
                     setValue: forKey:@""

//问题可以从NSUserDefault中取出可变字典吗?不可以,即使存储上去也会变成不可变的
//1.存储类型:
//NSUserDefaults支持的数据类型有:NSNumber(NSInteger、float、double),NSString,NSDate,NSArray,NSDictionary,BOOL。
//2.NSUserDefaults不能存储可变类型(如:NSMutableArray、NSMutableDictionary)
时间: 2024-11-01 23:11:40

NSUserDefault、NSMutableDictionary的setValue和setObject区别的相关文章

setObject:forKey:与setValue:forKey:的区别

首先不可变字典可以调起setValue:forKey:,但不能真正的进行操作,这取决与不可变字典不可增删改的特性. 然后看一下setObject:forKey: . setValue:forKey: . setValue:forKeyPath: 的标准调用语句: [muDict setValue:<#(nullable id)#> forKey:<#(nonnull NSString *)#>];[muDict setValue:<#(nullable id)#> fo

setValue 和 setObject 的区别

在使用NSMutableDictionary 的时候经常会使用setValue forKey 与 setObject forKey,他们经常是可以交互使用的. 1.setValue forKey的定义 @interface NSMutableDictionary(NSKeyValueCoding) /* Send -setObject:forKey: to the receiver, unless the value is nil, in which case send -removeObjec

setValue和setObject的区别

在使用NSMutableDictionary的时候经常会使用setValue forKey与setObject forKey,他们经常是可以交互使用的,代码中经常每一种的使用都有. 1,先看看setValue: forKey:的定义 @interface NSMutableDictionary(NSKeyValueCoding) /* Send -setObject:forKey: to the receiver, unless the value is nil, in which case s

[转]setValue和setObject的区别

在使用NSMutableDictionary的时候经常会使用setValue forKey与setObject forKey,他们经常是可以交互使用的,代码中经常每一种的使用都有. 1,先看看setValue: forKey:的定义 @interface NSMutableDictionary(NSKeyValueCoding) /* Send -setObject:forKey: to the receiver, unless the value is nil, in which case s

iOS setValue和setObject的区别

在使用NSMutableDictionary的时候经常会使用setValue forKey与setObject forKey,他们经常是可以交互使用的,代码中经常每一种的使用都有.1.先看看setValue: forKey:的定义 扩展NSMutableDictionary的一个类别,上面注释说的很清楚,发送setObject:forKey 给接收者,也就是调用setObject:forKey方法,除非value为nil的时候,调用方法removeObject:forKey 2.看看setObj

IOS [转]setValue和setObject的区别

在使用NSMutableDictionary的时候经常会使用setValue forKey与setObject forKey,他们经常是可以交互使用的,代码中经常每一种的使用都有. 1,先看看setValue: forKey:的定义 @interface NSMutableDictionary(NSKeyValueCoding) /* Send -setObject:forKey: to the receiver, unless the value is nil, in which case s

Objective-c setObject:forKey:和setValue:forKey:的区别

setObject:forKey: 是NSMutableDictionary类的方法 key参数类型可以是任意类型对象 value不能为nil,不然会报错 setValue:forKey: 是NSObject类的方法也就是说所有的OC对象都有这个方法 key值必须是字符串 value可以为nil,但是当value为空时,会自动调用removeObject:forKey方法 1.注意:setObject:forKey:对象不能存放nil要与下面的这种情况区分: [imageDictionaryse

setObject:forKey和setValue:forKey的区别

setObject:forKey: 是NSMutableDictionary类的方法                              key参数类型可以是任意类型对象                              value不能为nil,不然会报错 setValue:forKey: 是NSObject类的方法也就是说所有的OC对象都有这个方法                            key值必须是字符串                            v

字典 setValue和 setObject的不同

注意:setObject:forKey:中Key的对象是一个id类型,并不是NSString,只不过我们经常使用NSString而已. 1, setObject:forkey:中value是不能够为nil的,不然会报错. setValue:forKey:中value能够为nil,但是当value为nil的时候,会自动调用removeObject:forKey方法 2, setValue:forKey:中key的参数只能够是NSString类型,而setObject:forKey:的可以是任何类型