zoukankan      html  css  js  c++  java
  • 对象归档

        //保存图片

        //1,NSDocument

        NSString *documentPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject;

        NSString *path = [documentPath stringByAppendingString:@"/img.png"];

        //2,创建

        UIImage *image = [UIImage imageNamed:@"1.png"];

        

        //3,save

        NSData *imgData = UIImagePNGRepresentation(image);//png -> data

        

        [imgData writeToFile:path atomically:YES];

        NSLog(@"%@",path);

        

        

        

        

        

        ///////对象归档

        ////////////////复杂对象

        //1,

        Student *stu = [[Student new] autorelease];

        

        stu.name = @"name";

        stu.age = 11;

        stu.hobby = @"fff";

        

        //1,转成nsdata

        NSMutableData *mutableData = [NSMutableData data];

        

        //2,创建归档工具

        NSKeyedArchiver *archiver = [[[NSKeyedArchiver alloc] initForWritingWithMutableData:mutableData] autorelease];

        //2.3 归档

        [archiver encodeObject:stu forKey:@"stu"];

        //2,4 完成

        [archiver finishEncoding];

        

        //3,保存文件

        NSString *stuPath = [documentPath stringByAppendingString:@"/student"];

        //3,1写入

        [mutableData writeToFile:stuPath atomically:YES];

        

        

        

        

        /////4,取出

        NSData *stuData = [NSData dataWithContentsOfFile:stuPath];

        //4,1

        NSKeyedUnarchiver *unarchiver = [[[NSKeyedUnarchiver alloc] initForReadingWithData:stuData] autorelease];

        //4,2 反归档

        Student *resultStu = [unarchiver decodeObjectForKey:@"stu"];

        

        //4,3 结束

        [unarchiver finishDecoding];

        

        NSLog(@"%@,%lu,%@",resultStu.name,resultStu.age,resultStu.hobby);

        

        

        //、、、、、直接归档

        Student *s1 = [[[Student alloc] init] autorelease];

        

        s1.name = @"jj";

        s1.hobby = @"oo";

        s1.age = 11;

        

        //

        NSString *stuPath1 = [documentPath stringByAppendingString:@"/stu1"];

        [NSKeyedArchiver archiveRootObject:s1 toFile:stuPath1];

        

        //

        Student *s2 = [NSKeyedUnarchiver unarchiveObjectWithFile:stuPath1];

        NSLog(@"%@%@%lu",s2.name,s2.hobby,s2.age);

        

        

        

  • 相关阅读:
    NHibernate之旅(14):探索NHibernate中使用视图
    NHibernate之旅(18):初探代码生成工具使用
    NHibernate之旅(15):探索NHibernate中使用存储过程(上)
    接下来5年中有用的10项开发技能
    NHibernate之旅(22):探索NHibernate一级缓存
    NHibernate之旅(24):探索NHibernate二级缓存(下)
    NHibernate之旅(17):探索NHibernate中使用存储过程(下)
    NHibernate之旅(11):探索多对多关系及其关联查询
    Python入门示例系列18 条件控制
    .NET计划之配置ASP.NET运行环境
  • 原文地址:https://www.cnblogs.com/iOS-mt/p/4180383.html
Copyright © 2011-2022 走看看