美文网首页
ios数据持久化 - preference(偏好设置)

ios数据持久化 - preference(偏好设置)

作者: 一个记事本 | 来源:发表于2017-07-28 11:29 被阅读26次

    ******  数据持久化常用的五种方式  ******

    1.plist文件(属性列表)

    2.preference(偏好设置)

    3.NSKeyedArchiver(归档)

    4.SQLite 3

    5.CoreData

    偏好设置是专门用来保存应用程序的配置信息的,一般不要在偏好设置中保存其他数据。

    如果没有调用synchronize方法,系统会根据I/O情况不定时刻地保存到文件中。所以如果需要立即写入文件的就必须调用synchronize方法。

    偏好设置会将所有数据保存到同一个文件中。即preference目录下的一个以此应用包名来命名的plist文件。

    NSUserDefaults适合存储轻量级的本地数据,如登陆界面的数据,用户名、密码等用户偏好设置类的数据。下次启动应用的时候就可以直接从NSUserDefaults里面读取上次运行的数据。

    如果使用自己建立的plist文件什么的,需要自己显式创建文件,读取文件,很麻烦,而如果用NSUserDefaults则不用管这些,就像读字典一样,直接读取数据就可以了,同时NSUserDefaults有缓存机制,可以避免频繁读写文件。

    NSUserDefaults支持的数据格式有:NSNumber(BOOL、Integer、Float、Double),NSString,NSDate,NSArray,NSDictionary,NSData类型。

    NSUserDefaults不能存储可变(mutable)类型,只能存储不可变类型

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

    //添加preference

    [defaults setObject:@"value1" forKey:@"key1"];

    [defaults setObject:@1111 forKey:@"key2"];

    [defaults synchronize];

    //删除preference

    [defaults removeObjectForKey:@"key1"];

    [defaults synchronize];

    //修改preference

    [defaults setObject:@"value2" forKey:@"key1"];

    [defaults synchronize];

    //删除所有preference

    NSString *appDomainStr = [[NSBundle mainBundle] bundleIdentifier];

    [defaults removePersistentDomainForName:appDomainStr];

    NSString *key1Value = [defaults objectForKey:@"key1"];

    NSNumber *key2Value = [defaults objectForKey:@"key2"];

    NSLog(@"偏好设置=%@=%@",key1Value,key2Value);

    相关文章

      网友评论

          本文标题:ios数据持久化 - preference(偏好设置)

          本文链接:https://www.haomeiwen.com/subject/xettlxtx.html