标签:objective-c 移动互联网 ios开发 二进制 nsarray
NSData和NSMutableData存储的是二进制数据,在文件操作,网络,以及核心图形图像中使用较广泛。NSData创建后不可以再修改,NSMutableData可以再次修改。
1、NSString和NSData之间的转换
NSString *string =
@“哎我去上市了!";
//1、字符串转换成NSData
NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding];
//2、NSData转换成字符串
NSString * inString = [[NSString
alloc]initWithData:data encoding:NSUTF8StringEncoding];
2、UIImage和NSData之间的转换
//获取图片路径
NSString *imgPath = [[NSBundle
mainBundle] pathForResource:@"01loading.png"
ofType:nil];
NSData *imgData = [NSData
dataWithContentsOfFile:imgPath];
//直接使用,也可写入文件
self.imageView.image = [UIImage
imageWithData:imgData];
2>.如果图片是较小的 可以将UIImage转换成NSData存数据库。
3、NSNumber、NSArray、NSDictionary和NSData之间的转换
数组转NSData是建立在归档的基础上,归档也称为序列化,OC中NSString 对象、NSNumber对象、NSArray对象
NSDictionary字典对象、NSData 数据对象、这些类要进行数据保存时可以通过NSKeyedArchive 类来实现。
Foundtaion框架<Foundation/NSKeyedArchiver.h>提供归档和解归档的方式,也叫做序列化和反序列化的过程。
1>.把字典或数组用归档形式直接保存到某一个文件中
//初始化一个字典
NSDictionary *dict =
@{
@"key1":@"hahahah1",
@"key2":@"hahahah2",
@"key3":@"hahahah3",
@"key4":@"hahahah4",
@"key5":@"hahahah5",
@"key6":@"hahahah6",
@"key7":@"hahahah7"};
//归档路径
NSString *docPath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask,
YES) firstObject]
stringByAppendingPathComponent:@"dict.plist"];
//归档后直接保存到文件中
[NSKeyedArchiver
archiveRootObject:dict
toFile:docPath];
2>.把字典或数组先转换成NSData,再保存到某一个文件中
//初始化一个字典
NSDictionary *dict =
@{
@"key1":@"hahahah1",
@"key2":@"hahahah2",
@"key3":@"hahahah3",
@"key4":@"hahahah4",
@"key5":@"hahahah5",
@"key6":@"hahahah6",
@"key7":@"hahahah7"};
//归档路径
NSString *docPath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask,
YES) firstObject]
stringByAppendingPathComponent:@"dict.plist"];
//转换成NSData
NSData
*dictData = [NSKeyedArchiver
archivedDataWithRootObject:dict];
//保存到文件中
NSFileManager
*fm = [NSFileManager
defaultManager];
[fm
createFileAtPath:docPath contents:dictData
attributes:nil];
3>.解归档
直接从文件解归档
NSDictionary *Undict = [NSKeyedUnarchiver
unarchiveObjectWithFile:docPath];
将文件转换成NSData,在从NSData解归档
NSData *UndictData = [fm
contentsAtPath:docPath];
NSDictionary *Undict = [NSKeyedUnarchiver unarchiveObjectWithData:UndictData];
NSData和NSMutableData
标签:objective-c 移动互联网 ios开发 二进制 nsarray
原文地址:http://blog.csdn.net/debolee/article/details/44196469