iOS 数据存储到沙盒和读取数据

这篇博客介绍了如何在iOS应用中将数据存储到沙盒的Documents目录,以及如何从.plist文件中读取数据。文章强调了NSUserDomainMask用于定位用户目录,NSDocumentDirectory用于查找Documents文件夹,并提供了动态获取这些路径的方法。同时,内容指出.plist文件仅能存储系统内置的某些数据类型,如字符串、字典等,自定义对象无法直接存储。此外,还讲解了使用NSUserDefaults进行偏好设置的保存和读取操作,以及其默认保存位置在Preferences文件夹下。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.数据存放在沙盒里的保存为plist文件时候的读取

// NSUserDomainMask 在用户目录下查找

    // YES 代表用户目录的~

    // NSDocumentDirectory 查找Documents文件夹

    //建议使用如下方法动态获取

    NSString *doc = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES)lastObject];

    // 拼接文件路径

    NSString *path = [docstringByAppendingPathComponent:@"abc.plist"]


  

    NSArray *arr =@[@"lnj", @"28"];

    [arr writeToFile:pathatomically:YES];


    / 调用writeToFile将数据写入文件

    // [dict writeToFile:path atomically:YES];

    

   /*

     plist只能存储系统自带的一些常规的类,也就是有writeToFile方法的对象才可以使用plist保存数据

     字符串/字典/数据/NSNumber/NSData ...

     */

    

    // 自定义的对象不能保存到plist




2.读取plist文件里的内容

 NSString *doc = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,   NSUserDomainMask,YES) lastObject];

    

    NSString *path = [docstringByAppendingPathComponent:@"abc.plist"]

    ;

    // 读取数据

    NSDictionary *dict = [NSDictionarydictionaryWithContentsOfFile:path];

   NSLog(@"%@", dict);




3.保存在偏好设置里

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

    // 如果利用系统的偏好设置来存储数据, 默认就是存储在Preferences文件夹下面的

    // 偏好设置会将所有的数据保存到同一个文件中

    

    // 获取NSUserDefaults对象

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

    // 保存数据(如果设置数据之后没有同步, 会在将来某一时间点自动将数据保存到Preferences文件夹下面)

    [defaults setObject:@"lnj" forKey:@"name"];

    [defaults setObject:@"man" forKey:@"gender"];

    [defaults setInteger:13 forKey:@"age"];

    [defaults setDouble:10.1 forKey:@"height"];

    

    // NSUserDefaults立刻保存数据

    [defaults synchronize];




4.读取偏好设置里的数据

 // 1.获取NSUserDefaults

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

    // 2.通过NSUserDefaults获取保存的数据

    NSString *name = [defaults objectForKey:@"name"];

    int age = [defaults integerForKey:@"age"];

    NSLog(@"%@", name);

    NSLog(@"%d", age);




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值