NSData

//NSString与NSData之间的转换

    NSString *str = @"abcdefg";

    NSData *strData = [str dataUsingEncoding:NSUTF8StringEncoding];//把字符串变成data

    NSLog(@"%@",strData);

 

    NSString *backStr = [[NSString alloc] initWithData:strData encoding:NSUTF8StringEncoding];

    NSLog(@"%@",backStr);

    

    //对象与NSKeyedArchiver之间的转换

    NSArray *arr = @[@"aa",@"bb"];

    NSData *arrData = [NSKeyedArchiver archivedDataWithRootObject:arr];//把对象变成data,一次只能把一个对象变成一个data

    NSLog(@"%@",arrData);

    NSArray *backArr = [NSKeyedUnarchiver unarchiveObjectWithData:arrData];//把data变成对象

    NSLog(@"%@",backArr);

    

    //请做一个字典,两个key:name:lily,age:18,用上面方法变成data

    

#pragma mark 多个对象变成一个data

    NSDictionary *dic = @{@"name":@"pp",@"age":@"16"};//成对出现,一对一个冒号,冒号前是key,后是value,多个对之间用,隔开

    NSLog(@"%@",dic);

    NSArray *secondArr = @[@"123",@"456"];

    

    //1、准备一个可变的NSData,当成容器来存我们的对象

    NSMutableData *muData = [NSMutableData dataWithCapacity:0];

    //2、用alloc的方法做一个archiver的对象,初始化这个对象的时候,要用一个可变data,这个archiver将把很多个对象转成data,这些data都存在了这个可变data中

    NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:muData];

    

    //3、用archiver对象来调用encoding方法把对象存入这个可变data,同时给每一个存入的对象一个key,这个key就是未来我们从这个data中取得相应对象时候用的依据

    [archiver encodeObject:dic forKey:@"ppp"];

    [archiver encodeObject:secondArr forKey:@"qqqq"];

    

    //4、完成

    [archiver finishEncoding];

    NSLog(@"%@",muData);

    

#pragma mark 从data中根据之前设置好的key找到对应的对象

    

    //1、做一个NSKeyedUnArchiver对象,初始化的时候用一个data,这个data里存着很多个对象

    NSKeyedUnarchiver *unArchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:muData];

    

    //2、通过一个key,用unArchiver找到对应的对象,调用decode方法

    NSDictionary *unDic = [unArchiver decodeObjectForKey:@"ppp"];

    NSLog(@"%@",unDic);

    

    //3、完成

    [unArchiver finishDecoding];

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值