IOS数据存储(一)

1. IOS程序的文件夹管理

首先软件在苹果手机上的安装目录和软件在手机上的数据文件存储目录是不一样的。


一般软件的安装目录都是在 Containers/Bundle/Application/XXXX 文件夹,XXX是由系统随机生成的。

该目录[[NSBundle mainBundle] resourcePath] 获得,即软件的打包目录,NSBundle管理的一般都是此目录下资源内容,而且该目录内容只允许读取,而不允许修改。


在电脑上你可以右键选择显示包内容,可以看到所有的代码文件都被打包成一个可执行文件



ios为程序提供了沙盒机制,即为每个程序都提供一个专门保存该程序数据的文件夹,程序只能访问自己沙盒(文件夹)内的内容,而不能访问其他程序的沙盒内容。

程序的沙盒路径在手机上一般为 Containers/Data/Application/XXXX 文件夹,XXX是由系统随机生成的,都会包含三个目录。


目录的获取方法以及介绍如下:

//document文件目录
        /*
         应用程序的数据,文件主要存放的地方
         */
        NSString* documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, TRUE) lastObject];
        //library文件目录
        /*
         程序从网上获得的可以重新下载的数据
         */
        NSString* libraryPath = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, TRUE)lastObject];
        //tmp文件目录
        /*
         临时文件,用后删除
         */
        NSString* tmp = NSTemporaryDirectory();

2. 程序的基本配置信息

        IOS为程序的基本配置信息如用户姓名,程序音量等,提供了一个Setting Bundle的方便方法。你只要在工程上添加一个SettingBundle,就可以在手机的系统配置上见到软件的相关配置内容了。


1)为工程添加SettingBundle


2)自定义root.plist文件,具体参数见参考文章


3)在程序里读取配置信息

//获得NSUserDefaults的单例
    NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
    //获得指定id的配置信息
    NSLog(@"%@", [userDefaults stringForKey:@"name_preference"]);

          如果你想自己在应用里编写配置界面,你也可以直接选择用NSUserDefaults来保存配置信息。SettingBundle其实只是提供了一个快捷的界面,其内部数据也是使用NSUserDefaults来保存。NSUserDefaults使用的是全局的单例模式。首选项参数(即id)和值组成dictionary以plist文件的形式保存在 Library/Preference文件夹中。

        NSUserDefaults使用方法:

//获得NSUserDefaults的单例
    NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
    //获得指定id的配置值
    NSString *name = [userDefaults stringForKey:@"name_preference"];
    //修改制定id的值
    [userDefaults setBool:FALSE forKey:@"music_preference"];
    //保存所有修改
    [userDefaults synchronize];



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值