• 数据存储


    1、在Mac上显示和取消隐藏文件夹的命令:------>便于开发
      1>defaults write com.apple.finder AppleShowAllFiles YES
      2>defaults write com.apple.finder AppleShowAllFiles NO
    2、获取沙盒Documents全路径的快捷方法
      NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory,NSUserDomainMask, YES)[0]
    3.数据存取
      0>.应用沙盒
        1.Documents 保存应用运行时生成的需要持久化的数据,iTunes同步设备时,会备份该目录。
        2.tmp 保存应用运行时所需的临时数据,使用完毕时再将相应的数据删除,不会同步
        3.Library/Caches 保存应用运行时生成的需要持久化的数据,iTunes同步设备时,不会备份该目录。一般存储体积大,不需要备份的非重要数据
        4.Library/Preference 保存应用的所有偏好设置,ios的Setting应用会在该目录中查找应用的设置信息。iTunes同步时,会备份该目录。
        总结:体积大 tmp(里面的内容可能会被系统随机删除) library/caches iTunes不会备份
        体积小 Documents library/Preference iTunes会备份  

      1>XML属性(Plist)归档一般都是先写在读的

        0.使用NSHomeDirectory()这个函数获取项目的沙盒路径
        1.在ViewdidLoad方法中读取文件
        2.在按钮监听事件中写入文件 写文件调用文件的[dict writeToFile:filePath atomically:YES];
      2>.Preference(偏好设置)
          一般都是先存在读的
        0.NSUserDefaults *user = [NSUserDefaults standardUserDefaults]; //初始化用户默认设置
        1.初始化后,掉这个方法,设置值 [user setObject:_qq.text forKey:@"qq"];
        2.马上进行存储(马上进行同步)[user synchronize];
        3. 在viewdidload方法中,读数据
          1>初始化用户默认设置
          2>调这个方法取值 [user objectForKey:@"qq"];
      3>归档和解析  NSKeyedArchiver归档返回的是一个数组,
        1>归档返回的是个BOOL类型的,默认就是YES 这个kFilePath指的是Documents的全路径
        [NSKeyedArchiver archiveRootObject:_dataArray toFile:kFilePath];
        2>解析
        _dataArray = [NSKeyedUnarchiver unarchiveObjectWithFile:kFilePath];
        3>将模型对象存入沙盒的方法
        模型必须实现这两个方法
        #pragma mark 当从文件中解析对象时调用
        // 在这个方法说清楚:
        // 1.哪些属性需要解析(读取)
        // 2.怎样解析(读取)这些属性
          - (id)initWithCoder:(NSCoder *)deCoder
          {
            if (self = [super init]) {
              _name = [deCoder decodeObjectForKey:@"name"];
              _phone = [deCoder decodeObjectForKey:@"phone"];
          }
          return self;
          }
        #pragma mark 将对象归档的时候会调用(将对象写入文件之前会调用)
        // 在这个方法说清楚:
        // 1.哪些属性需要存储
        // 2.怎样存储这些属性
          - (void)encodeWithCoder:(NSCoder *)enCoder
          {
          [enCoder encodeObject:_name forKey:@"name"];
           [enCoder encodeObject:_phone forKey:@"phone"];
          }

  • 相关阅读:
    贪心算法解汽车加油站问题
    Kickstart Practice Round 2017---A
    win8.1系统下安装ubuntu实现双系统实践教程
    2017年1月15日--牛客网
    想写点什么而已
    Java中this和super的用法总结
    数据库练习(16年12月27日)-- 牛客网
    Technical Development Guide---for Google
    Java 自动装箱与拆箱(Autoboxing and unboxing)
    [LeetCode] Department Highest Salary -- 数据库知识(mysql)
  • 原文地址:https://www.cnblogs.com/yinqiang/p/3486804.html
Copyright © 2020-2023  润新知