NSData数据类型的讲解
2015-08-18 16:47
309 查看
NSData,数据,当我们需要把一些信息写入到文件里或发送到网络上,我们需要把这些数据转换下,变成纯粹的0、1字符流
也就是网络中要传数据的的时候,我们通常会用相应的NSData的数据来进行存储。
1、 NSData 与 NSString: //转成UTF8的数据
NSString * str = @"hello, world!";
NSData * data = [str dataUsingEncoding:NSUTF8StringEncoding];
//NSString转换成NSData类型
NSString * neswStr = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
//将Data数据转化为字符串
2. NSData 与 UIImage
NSData->UIImage
UIImage *aimage = [UIImage imageWithData: imageData];
//例:从本地文件沙盒中取图片并转换为NSData
NSData *imageData = [NSData dataWithContentsOfFile: finalPath];
// finalPath为获取图片的路径,获取图片的数据
UIImage *aimage = [UIImage imageWithData: imageData];
//将图片的数据转化为图片
3.NSData与NSArray NSDictionary
+(NSString *)getLocalFilePath:(NSString *) fileName
{
return [NSString stringWithFormat:@"%@/%@%@", NSHomeDirectory(),@“Documents”,fileName];
}
包括将NSData写进Documents目录,从Documents目录读取数据
在进行网络数据通信的时候,经常会遇到NSData类型的数据。
在该数据是dictionary结构的情况下,系统没有提供现成的转换成NSDictionary的方法,为此可以通过Category对NSDictionary进行扩展,以支持从NSData到NSDictionary的转换。
下面是在NSdictionary中添加转化为NSData的方法。
+ (NSDictionary *)dictionaryWithContentsOfData:(NSData *)data {
CFPropertyListRef list = CFPropertyListCreateFromXMLData(kCFAllocatorDefault, (CFDataRef)data, kCFPropertyListImmutable, NULL);
if(list == nil) return nil;
if ([(id)list isKindOfClass:[NSDictionary class]]) {
return [(NSDictionary *)list autorelease];
}
else {
CFRelease(list);
return nil;
}
}
NSData生成:
NSDictionary *dic =[NSDictionary dictionaryWithObject:@"hello" forKey:@"KEY"];
NSData *d = [NSKeyedArchiver archivedDataWithRootObject:dic];
从文件生成NSData:
NSBundle *bundle = [NSBundle mainBundle];
NSString *path = [bundle pathForResource:@"hello" ofType:@"png"];
NSData *d = [[NSData alloc] initWithContentsOfFile: path];
取得元素长度:
int i = [d length];
NSData型转成NSDictionary型:
NSDictionary *reverse = [NSKeyedUnarchiver unarchiveObjectWithData: d];
4.NSData与NSDate
//函数作用 :date根据formatter转换成string
+(NSString*)dateToString:(NSString *)formatter date:(NSDate *)date
{
NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateFormat:formatter];
return[dateFormatter stringFromDate:date];
}
//函数作用 :string类型的时间戳转换成时间
+(NSString*)dateStringToString:(NSString *)dateStr
{
if ([dateStr isKindOfClass:[NSNull class]]) {
return nil;
}
else{
NSInteger time = [dateStr intValue];
NSDate *date = [NSDate dateWithTimeIntervalSince1970:time];
NSString *timestr = [NSString stringWithFormat:@"%@",date];
NSRange rang;
rang.location = 0;
rang.length = 10;
NSString *needtime = [timestr substringWithRange:rang];
return needtime;
}
}
//函数作用 :将日期从原格式转换成需要的格式
+(NSString*)convertDateFormatter:(NSString*)sourceFormatter
targetFormatter:(NSString*)targetFormatter
dateString:(NSString*)dateString
{
NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateFormat:sourceFormatter];
NSDate *date = [dateFormatter dateFromString:dateString];
[dateFormatter setDateFormat:targetFormatter];
return[dateFormatter stringFromDate:date];
}
//函数作用 :将日期字符串转换成date
+(NSDate *)stringToDate:(NSString *)formatter dateString:(NSString *)dateString{
NSDateFormatter *dateFormatter= [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateFormat:formatter];
return [dateFormatter dateFromString:dateString];
}
//时间戳转换成时间
NSInteger time = [[dic objectForKey:@"press_date"] intValue];
NSDate *date = [NSDate dateWithTimeIntervalSince1970:time];
NSString *timestr = [NSString stringWithFormat:@"%@",date];
NSRange rang;
rang.location = 0;
rang.length = 10;
NSString *needtime = [timestr substringWithRange:rang];
sh
也就是网络中要传数据的的时候,我们通常会用相应的NSData的数据来进行存储。
1、 NSData 与 NSString: //转成UTF8的数据
NSString * str = @"hello, world!";
NSData * data = [str dataUsingEncoding:NSUTF8StringEncoding];
//NSString转换成NSData类型
NSString * neswStr = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
//将Data数据转化为字符串
2. NSData 与 UIImage
NSData->UIImage
UIImage *aimage = [UIImage imageWithData: imageData];
//例:从本地文件沙盒中取图片并转换为NSData
NSData *imageData = [NSData dataWithContentsOfFile: finalPath];
// finalPath为获取图片的路径,获取图片的数据
UIImage *aimage = [UIImage imageWithData: imageData];
//将图片的数据转化为图片
3.NSData与NSArray NSDictionary
+(NSString *)getLocalFilePath:(NSString *) fileName
{
return [NSString stringWithFormat:@"%@/%@%@", NSHomeDirectory(),@“Documents”,fileName];
}
包括将NSData写进Documents目录,从Documents目录读取数据
在进行网络数据通信的时候,经常会遇到NSData类型的数据。
在该数据是dictionary结构的情况下,系统没有提供现成的转换成NSDictionary的方法,为此可以通过Category对NSDictionary进行扩展,以支持从NSData到NSDictionary的转换。
下面是在NSdictionary中添加转化为NSData的方法。
+ (NSDictionary *)dictionaryWithContentsOfData:(NSData *)data {
CFPropertyListRef list = CFPropertyListCreateFromXMLData(kCFAllocatorDefault, (CFDataRef)data, kCFPropertyListImmutable, NULL);
if(list == nil) return nil;
if ([(id)list isKindOfClass:[NSDictionary class]]) {
return [(NSDictionary *)list autorelease];
}
else {
CFRelease(list);
return nil;
}
}
NSData生成:
NSDictionary *dic =[NSDictionary dictionaryWithObject:@"hello" forKey:@"KEY"];
NSData *d = [NSKeyedArchiver archivedDataWithRootObject:dic];
从文件生成NSData:
NSBundle *bundle = [NSBundle mainBundle];
NSString *path = [bundle pathForResource:@"hello" ofType:@"png"];
NSData *d = [[NSData alloc] initWithContentsOfFile: path];
取得元素长度:
int i = [d length];
NSData型转成NSDictionary型:
NSDictionary *reverse = [NSKeyedUnarchiver unarchiveObjectWithData: d];
4.NSData与NSDate
//函数作用 :date根据formatter转换成string
+(NSString*)dateToString:(NSString *)formatter date:(NSDate *)date
{
NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateFormat:formatter];
return[dateFormatter stringFromDate:date];
}
//函数作用 :string类型的时间戳转换成时间
+(NSString*)dateStringToString:(NSString *)dateStr
{
if ([dateStr isKindOfClass:[NSNull class]]) {
return nil;
}
else{
NSInteger time = [dateStr intValue];
NSDate *date = [NSDate dateWithTimeIntervalSince1970:time];
NSString *timestr = [NSString stringWithFormat:@"%@",date];
NSRange rang;
rang.location = 0;
rang.length = 10;
NSString *needtime = [timestr substringWithRange:rang];
return needtime;
}
}
//函数作用 :将日期从原格式转换成需要的格式
+(NSString*)convertDateFormatter:(NSString*)sourceFormatter
targetFormatter:(NSString*)targetFormatter
dateString:(NSString*)dateString
{
NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateFormat:sourceFormatter];
NSDate *date = [dateFormatter dateFromString:dateString];
[dateFormatter setDateFormat:targetFormatter];
return[dateFormatter stringFromDate:date];
}
//函数作用 :将日期字符串转换成date
+(NSDate *)stringToDate:(NSString *)formatter dateString:(NSString *)dateString{
NSDateFormatter *dateFormatter= [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateFormat:formatter];
return [dateFormatter dateFromString:dateString];
}
//时间戳转换成时间
NSInteger time = [[dic objectForKey:@"press_date"] intValue];
NSDate *date = [NSDate dateWithTimeIntervalSince1970:time];
NSString *timestr = [NSString stringWithFormat:@"%@",date];
NSRange rang;
rang.location = 0;
rang.length = 10;
NSString *needtime = [timestr substringWithRange:rang];
sh
相关文章推荐
- 怎么拆分一个Excel工作簿中的多个工作表
- Android(java)学习笔记173:BroadcastReceiver之 BroadcastReceiver静态注册(SD卡卸载或者安装案例)和 BroadcastReceiver动态注册注销
- OC基础回顾(十)属性
- leetcode 152 —— Maximum Product Subarray
- 欢迎使用CSDN-markdown编辑器
- OpenGL4.3如何管理buffer中的数据的(二)
- DNS域名解析简介
- [DP]0817-08基础DP
- hdoj 1596 find the safest road
- Android Fragment 真正的完全解析(下)
- 杭电 2680 Choose the best route(dijkstra)
- Java连接池
- TCP/IP体系结构简介
- PLSQL配置数据库的方式
- 微信公众号开发之微信支付
- 2015年邮件营销人员最值得关注的10个焦点
- 黑马程序员_TCPUDP
- Load Asset Bundle in Editor
- select2组件
- C++函数调用详解