iOS-NSUserDefaults

NSUserDefaults总结:

  • 1、存储类型
  • 2、存储自定义对象
  • 3、设置默认值
  • 4、删除NSUserDefaults
  • 5、注意情况

NSUserDefaults在App更新和系统更新都保存,App卸载会删除

一般保存用户名或者一些配置的信息

1:存储类型

NSUserDefaults支持的数据类型有:NSNumber(NSInteger、float、double),NSString,NSDate,NSArray,NSDictionary,BOOL

NSUserDefaults不能存储可变类型(如:NSMutableArray、NSMutableDictionary)

2:存储自定义对象

自定义对象要先序列化、然后转为NSData、需要写一个encodeWithCoder 和 initWithCoder的函数

方式如下:实现下面的协议:

@protocol NSCoding
- (void)encodeWithCoder:(NSCoder *)aCoder; - (nullable instancetype)initWithCoder:(NSCoder *)aDecoder; // NS_DESIGNATED_INITIALIZER @end
3:设置默认值

设置一个字典为相应的key值设置默认的value,如果某个key值原来有对应的value,则不会覆盖

NSDictionary *defaultValues = [NSDictionary dictionaryWithObjectsAndKeys: @"value", @"key",nil];

[[NSUserDefaults standardUserDefaults] registerDefaults:defaultValues];  
4:删除NSUserDefaults
- (void)setObject:(nullable id)value forKey:(NSString *)defaultName; - (void)removeObjectForKey:(NSString *)defaultName;
5、注意情况
  • 1)NSUserDefaults不能存储可变类型(如:NSMutableArray、NSMutableDictionary)
  • 2)使用synchronize 可以直接写入disk
  • 3)相同key值会替换

代码例子【https://github.com/nonoBruce/KYUserDefault】

你可能感兴趣的:(iOS)