美文网首页
实现本地存取自定义对象

实现本地存取自定义对象

作者: hzy1314 | 来源:发表于2017-07-21 20:09 被阅读1次

    一.定义对象:自定义对象必须遵从nscoding协议



    @interface TestDic : NSObject

    @property (nonatomic,copy) NSString *pro1;

    @property (nonatomic,copy) NSString *pro2;

    @implementation TestDic

    -(instancetype)initWithCoder:(NSCoder *)aDecoder{

    if (self=[super init]) {

    self.pro1=[aDecoder decodeObjectForKey:@"pro1"];

    self.pro2=[aDecoder decodeObjectForKey:@"pro2"];

    }

    return self;

    }

    -(void)encodeWithCoder:(NSCoder *)aCoder{

    [aCoder encodeObject:self.pro1 forKey:@"pro1"];

    [aCoder encodeObject:self.pro2 forKey:@"pro2"];

    }

    @end


    二。使用NSKeyedArchived类和NSKeyedUnarchiver类实现存取


    // 写文件

    NSString *path=[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)lastObject];

    //    NSString *str=@"测试";

    NSString *docpath=[path stringByAppendingPathComponent:@"test.data"];

    NSDictionary *dic1=[NSDictionary dictionaryWithObjectsAndKeys:@"1",@"pro1",@"2",@"pro2", nil];

    NSDictionary *dic2=[NSDictionary dictionaryWithObjectsAndKeys:@"3",@"pro1",@"4",@"pro2", nil];

    TestDic *test1=[[TestDic alloc]init];

    TestDic *test2=[[TestDic alloc]init];

    test1.pro1=[dic1 valueForKey:@"pro1"];

    test2.pro1=[dic2 valueForKey:@"pro1"];

    test1.pro2=[dic1 valueForKey:@"pro2"];

    test2.pro2=[dic2 valueForKey:@"pro2"];

    NSMutableArray *arr=[NSMutableArray array];

    [arr addObject:test1];

    [arr addObject:test2];

    //    NSData *imageData = [NSKeyedArchiver archivedDataWithRootObject:arr];

    //NSArray *arr=[NSArray arrayWithObjects:@"1",@"2", nil];

    BOOL iswrite= [NSKeyedArchiver archiveRootObject:arr toFile:docpath];

    if (iswrite) {

    NSLog(@"写入成功");

    }else{

    NSLog(@"写入失败");

    }

    NSLog(@"%@",docpath);

    //读文件

    NSMutableArray *mutablearr=[NSKeyedUnarchiver unarchiveObjectWithFile:docpath];

    NSLog(@"%@",mutablearr);

    相关文章

      网友评论

          本文标题: 实现本地存取自定义对象

          本文链接:https://www.haomeiwen.com/subject/uvzekxtx.html