zoukankan      html  css  js  c++  java
  • ios数据持久化 归档 对象 等数据

    原文地址:http://jingyan.baidu.com/article/6b97984d9481f61ca2b0bfd4.html

    方法/步骤

    1.  

      例如:对person 对象进行归档。

      首先。person.h文件

      #import <Foundation/Foundation.h>

      @interface JPerson : NSObject <NSCoding>

      @property(nonatomic,copy)NSString *name;

      @property(nonatomic,assign)int age;

      @property(nonatomic,assign)double height;

      @end

      ios数据持久化 归档 对象 等数据
    2.  

      之后person.m 文件 声明两个方法 一个写 一个读

      #import "JPerson.h"

      @implementation JPerson

      #pragma mark 将对象归档的时候会调用(将对象写入文件前会调用)

      //在这个方法说清楚

      //哪些属性需要存储

      //怎样存储这些属性

      - (void)encodeWithCoder:(NSCoder *)encoder

      {

          //将_name属性进行编码

          [encoder encodeObject:_name forKey:@"name"];

          

          [encoder encodeInt:_age forKey:@"age"];

          

          [encoder encodeDouble:_height forKey:@"height"];

      }

      #pragma mark 当从对象中解析时 调用。

      //这个方法说清楚

      //1.哪些属性需要解析

      //2,怎样解析这些属性

      -(id)initWithCoder:(NSCoder *)decode

      {

          if (self = [super init]) {

              _name = [decode decodeObjectForKey:@"name"];

              _age = [decode decodeIntForKey:@"age"];

              _height = [decode decodeDoubleForKey:@"height"];

          }

          return self;

      }

      @end

      ios数据持久化 归档 对象 等数据
    3.  

      在  你需要读写的 .m 文件下实现

      这里 是在点击按钮的时候 实现

      - (IBAction)Write {

          JPerson *p = [[JPerson alloc]init];

          p.name = @"jin";

          p.age = 10;

          p.height = 176.0;

          //有个类 键值编码

          

          NSString *path = @"/Users/macbookair/Desktop/person.data";

          //归档

          [NSKeyedArchiver archiveRootObject:p toFile:path];

          

          

      }

      - (IBAction)read {

          

           NSString *path = @"/Users/macbookair/Desktop/person.data";

          

          //读档 (反归档)

          

          JPerson *p = [NSKeyedUnarchiver unarchiveObjectWithFile:path];

          

           NSLog(@"%@--%d---%f",p.name ,p.age ,p.height);

          

      }

      ios数据持久化 归档 对象 等数据
    4. 4

      ok 查看 输出 :

      ios数据持久化 归档 对象 等数据
  • 相关阅读:
    成员对象和封闭类
    静态成员
    this指针
    类型构造构造函数
    拷贝构造函数
    C++
    矩阵快速幂求递推式
    对浅拷贝和深拷贝的基本理解
    传引用作为形参和返回值_节省参数拷贝的时间
    namespace的基本知识
  • 原文地址:https://www.cnblogs.com/aggie/p/4554703.html
Copyright © 2011-2022 走看看