2.NSData
2.1 NSData & NSString
2.1.1 from string to data
NSString *str = @"我是一个程序员";
//NSData类,这个方法是个NSString的方法,但是这个方法返回值是NSData的,所以用这个方法把一个字符串变成NSData。
NSData *strData = [str dataUsingEncoding:NSUTF8StringEncoding];
NSLog(@"%@",strData);
2.1.2 from data to string,要使用NSString 的alloc init方法来把一个NSData变为String
NSString *str2 = [[NSString alloc] initWithData:strData encoding:NSUTF8StringEncoding];
NSLog(@"%@",str2);
2.2 NSData & NSArray
2.2.1 from array to data
NSArray *arr = @[@"1",@"2"];
NSData *arrData = [NSKeyedArchiver archivedDataWithRootObject:arr];
NSLog(@"%@",arrData);
2.2.2 from data to array
NSArray *arr2 = [NSKeyedUnarchiver unarchiveObjectWithData:arrData];
NSLog(@"%@",arr2);
2.3 NSData & NSDictionary
2.3.1 from dic to data
NSDictionary *dic = @{@"name":@"li",@"sex":@"女"};
//贮备一个可变的NSData
NSMutableData *tempData = [NSMutableData dataWithCapacity:0];
//准备一个Archiver,向参数的可变data中写数据
NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:tempData];
//进行归档操作,吧dic通过一个key存到一个data中,这个key的作用就是以后可以它找到对应的object。
[archiver encodeObject:dic forKey:@"dic"];
[archiver encodeObject:arr1 forKey:@"arr1"];
//这个归档操作可以参考可变字典的setValue:forkey:
//要有一个归档结束的方法操作
[archiver finishEncoding];
NSLog(@"tempData:%@",tempData);
2.3.2 from data to dictionary
//创建一个归档的对象unArchiver,参数就是要解的那个data。
NSKeyedUnarchiver *unArchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:tempData];
//根据key把他解了
NSDictionary *dic2 = [unArchiver decodeObjectForKey:@"dic"];
NSDictionary *dic0 = [unArchiver decodeObjectForKey:@"arr1"];
//解档结束
[unArchiver finishDecoding];
NSLog(@"%@",dic2);
NSLog(@"%@",dic0);