zoukankan      html  css  js  c++  java
  • (三十九)数据的持久化存储-plist实现(XML属性表)

    iOS应用数据存储的常用方式:

    归档:用某种格式保存数据。

    XML属性列表(plist)归档(持久化)

    Preference 偏好设置

    NSKeyedArchiver归档

    SQLite3 数据库 效率最高

    缺点是SQLite是关系型数据库,将对象存入数据库需要将对象进行转码(使用SQL语句)

    Core Data 苹果官方提供的对SQLite数据库操作的封装


    应用沙盒:

    每个应用之间是隔开的,不能相互访问。

    应用沙盒的目录结构:

    Layer放资源包。

    Documents保存运行生成的需要持久化的数据,iTunes会自动备份,例如游戏存档。

    tmp保存应用运行时的临时数据,使用完毕的可能会被删除。

    Library/Caches保存运行时生成的存储体积大、不需要备份的数据,iTunes不会备份这个目录。

    Library/Preference保存所有的偏好设置,iOS的Settings应用会在该目录中查找应用的设置信息,iTunes会将其备份。


    利用plist来存储数据:

    注意一个细节,使用string的Path...方法可以避免写路径斜杠,提高兼容性。

        NSString *homePath = NSHomeDirectory(); // 获取沙盒根路径
        NSString *docPath = [homePath stringByAppendingPathComponent:@"Documents"];
        NSArray *data = @[@"ele1",@2,@"ele3"];
        NSString *filePath = [docPath stringByAppendingPathComponent:@"data.plist"];
        [data writeToFile:filePath atomically:YES];
    
    数据的读取:

        NSString *homePath = NSHomeDirectory();
        NSString *docPath = [homePath stringByAppendingPathComponent:@"Documents"];
        NSString *filePath = [docPath stringByAppendingPathComponent:@"data.plist"];
        NSArray *data = [NSArray arrayWithContentsOfFile:filePath];


    缺点:系统自带的OC对象才能写入。



  • 相关阅读:
    残疾流浪歌手的令人陶醉的声音
    关于浏览器参数的获取
    项目开发文档模板
    scoped_ptr源码
    从逗号分隔的字符串中删除某个子串的js函数
    合并两个数组的js函数
    comutil.h移值(_com_error,_bstr_t,_variant_t类的移值)
    判断两个对象是否相等的js函数
    托管可执行文件的结构(The Structure of a Managed Executable File)
    访问cookie的js函数
  • 原文地址:https://www.cnblogs.com/aiwz/p/6154212.html
Copyright © 2011-2022 走看看