zoukankan      html  css  js  c++  java
  • 数据存储

    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"];
          }

  • 相关阅读:
    RealView MDK在链接时提示空间不够的解决方案总结
    不同的LCD之间程序移植时配置参考
    S3c2440ALCD控制器配置实例
    mini2440裸机之PWM
    对增益大于等于10时保持稳定的放大器进行补偿以在较低增益下工作
    ASP.NET HttpContext的时间戳属性
    C#验证邮箱,电话,手机,数字,英文,日期,身份证,邮编,网址,IP类.. (转)
    sqlhelper 实现回滚事务
    JQuery全选和反选
    js 获取前天、昨天、今天、明天、后天的时间 (转)
  • 原文地址:https://www.cnblogs.com/yinqiang/p/3486804.html
Copyright © 2011-2022 走看看