iOS中的数据持久化<数据库另外详细介绍>

1.偏好设置

- (void)Preference{
    /*
    偏好设置是用来专门用来保存引用程序的配置信息的,一般不要在偏好设置中保存其他数据.
    如果没有调用synchonize方法,系统会根据I/O情况不定时刻第保存到文件中,所以如果需要立即写入文件的,就必须立刻调用synchonize
    偏好设置会将所有数据保存到同一个文件中,即preference目录下的一个,以此应用宝命来命名的plist文件
     */
    // 1.获取NSUserdefault文件
    NSUserDefaults *userdefults = [NSUserDefaults standardUserDefaults];
    // 2.向文静中写入内容
    [userdefults setObject:@"AAA" forKey:@"a"];
    NSDictionary *dic = @{@"123":@"123"};
    [userdefults setObject:dic forKey:@"dic"];
    // 2.1 立即同步
    [userdefults synchronize];
    // 3.读取文件
    NSString *name = [userdefults objectForKey:@"a"];
    NSLog(@"name --%@",name);
    NSLog(@"dic---%@",[userdefults objectForKey:@"dic"]);
}

// 2 .plist

 /*
     NSDictionary
     NSMutableData
     NSDate
     NSNumber
     NSArray
     NSString
     NSMutableArray
     等
     */
    // 1.获取文件路径
    NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject stringByAppendingPathComponent:@"ios.plist"];
//    NSArray *arr = @[@"1",@"2",@"3"];
//    [arr writeToFile:path atomically:YES];
//    // 2读取文件
//    NSArray *array = [NSArray arrayWithContentsOfFile:path];
//    NSLog(@"---%@",array);
//
//    atomically表示是否需要写入一个辅助文件,再把辅助文件拷贝到目标文件地址,一般设置为yes
    NSDictionary *dic = @{@"1":@"2"};
    [dic writeToFile:path atomically:YES];
    
    NSDictionary *dic1 = [NSDictionary dictionaryWithContentsOfFile:path];
    NSLog(@"--%@",dic1);

// 3 归档解档

- (void)NSKeyedArchiver{
    // 需要把对象归档是调用,NSKeyedArchiver的工厂方法archiveRootObject:toFile:方法
    NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject stringByAppendingPathComponent:@"Person.haha"];//保存文件的扩展名可以随便写
    Person * p = [[Person alloc] init];
    p.name = @"123";
    [NSKeyedArchiver archiveRootObject:p toFile:path];
    
    // 读取 :需要把对象归档是调用,NSKeyedUnarchiver 的工厂方法unarchiveObjectWithFile方法
    Person *ps = [NSKeyedUnarchiver unarchiveObjectWithFile:path];
    if (ps) {
        NSLog(@"----%@",ps.name);
    }
    // 注意
    //必须遵循并实现NSCoding协议
    //保存文件的扩展名可以随便写
    //继承是必须先调用父类的归档结档方法
    
}

// 还有就是数据库.以后有空详细介绍,以前也写过一篇关于fmdb的文章(swift的对fmdb的第二次封装)

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • (摘自张潇雨专栏《商业经典案例课》) 格拉厄姆说: 1. 创业公司在招聘方面犯的最大错误是,当你招聘的时候并不知道...
    kafkaliu阅读 3,051评论 0 0
  • 近些年旅游之风在祖国大地遍布狼烟,有人说丽江失去原有的韵味,桂林也逐渐喧闹,江边的酒吧变灯光闪烁,音乐嘈杂,商业化...
    秋风沐雨阅读 1,337评论 0 1
  • 深夜,每次想你,都会失眠。
    一禅_578b阅读 1,432评论 0 0
  • 沙坪坝区在重庆的地图上一直是一块虎狼之地。 学生多,各个影院海报贴得老多,上班族也多。 而沙坪坝的火锅,才真是不要...
    火锅老师阅读 3,134评论 0 3
  • 有一年,中学外面的操场旁边的空地上被拉来几大车废铁渣,就像炉渣一样,烧得干干的,碎碎的。我们每天在旁边玩耍跑来跑去...
    chenum1阅读 3,003评论 0 0

友情链接更多精彩内容