归档和解归档

归档和解归档除了用于NSString、NSNumber、NSArray、NSDictionary等对象和NSData之间的转换(见 点击打开链接),还可以用来保存别的对象,如保存界面上的view对象。
对象归档必须做两件事情:
1.对象必须遵守NSCoding协议
2.在对象中实现该协议的两个方法
// 属性编码
- (
void )encodeWithCoder:( NSCoder *)aCoder{
    [aCoder encodeObject:
self .name forKey: @"name" ];
    [aCoder encodeInteger:
self .age forKey: @"age" ];
}

// 属性解码
- (
id )initWithCoder:( NSCoder *)aDecoder{
   
self = [ super init ];
   
if ( self ) {
       
self .name = [aDecoder decodeObjectForKey: @"name" ];
       
self .age = [aDecoder decodeIntegerForKey: @"age" ];
    }
   
return self ;
}

NSString、NSNumber、NSArray、NSDictionary以及UIView默认遵守了NSCoding协议。

//    一、 归档
    NSArray *names = @[@ A " , @ B " , @ C " , @ D " ] ;
//   1. 准备一个可变的 data
    NSMutableData *data = [NSMutableDatadata];
//    2. 创建归档对象
   
NSKeyedArchiver *arch = [[ NSKeyedArchiver alloc ] initForWritingWithMutableData :data];
//    3. 把对象编码进去
    [arch
encodeObject :names forKey : @"names" ];
//    4. 完成编码
    [arch finishEncoding];
//    5、写入文件
    [data writeToFile:@"/Users/tarena/Desktop/names"atomically:YES];

//    二、解归档
//    1、读入文件
   NSData *data = [NSData dataWithContentsOfFile:@"/Users/tarena/Desktop/names"];
//    2、 创建反归档对象
    NSKeyedUnarchiver *unArch = [[NSKeyedUnarchiveralloc]initForReadingWithData:data];
//    3、 解码
    NSArray *names = [unArch decodeObjectForKey:@"names"];

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Linux中,归档(也称为压缩)文件通常使用tar命令,它是用于备份、存档和传输文件或目录的重要工具。以下是几个常用的tar命令及其选项: 1. `tar` 基本用法:创建归档文件 - `tar cvf archive_name source_directory [file...]:` 创建一个名为`archive_name.tar`的新归档文件,包含指定目录下的所有文件和子目录。 2. `tar` 添加到已存在的归档文件: - `tar rf archive_name.tar file_to_add:` 向现有的`archive_name.tar`文件添加新文件。 3. `tar` 提取归档文件: - `tar xvf archive_name.tar:` 解压归档文件内容到当前目录。 - `tar xvf archive_name.tar -C destination_directory:` 解压到指定的`destination_directory`。 4. `tar` 预览归档内容: - `tar tvf archive_name.tar:` 显示归档文件的内容,但不提取。 5. `tar` 压缩和解压缩: - `gzip` 和 `bzip2` 是常用的压缩程序,与`tar`结合使用,如 `tar czvf archive_name.tar.gz source_directory` (gzip压缩) 或 `tar jvf archive_name.tar.bz2` (bzip2压缩)。 6. `tar` 遍历特定模式: - `tar --exclude='*.log' cvf archive_name.tar source_directory:` 排除名为`.log`的文件。 7. `tar` 安全模式: - `tar --use-compress-program=program_name`: 指定使用特定压缩程序,如`--use-compress-program=pigz` (pigz并行压缩)。 相关问题-- 1. 哪些压缩格式与tar配合使用? 2. 如何在tar命令中排除某些文件或目录? 3. 使用tar命令时如何确保归档文件的安全性?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值