分享

NSData和NSMutableData

 3dC 2015-09-25

标签:objective-c   移动互联网   ios开发   二进制   nsarray   

     NSData和NSMutableData存储的是二进制数据,在文件操作,网络,以及核心图形图像中使用较广泛。NSData创建后不可以再修改,NSMutableData可以再次修改。

1、NSString和NSData之间的转换
    NSString *string = @“哎我去上市了!";
    //1、字符串转换成NSData
    NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding];
    //2NSData转换成字符串
    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];
     1>.数据库里存储图片 存储图片路径 /images/car@2x.png
     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   

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多