nsdata使用指南
2016-03-14 11:28
225 查看
1. NSData 与 NSString
NSData-> NSString
NSString *aString = [[NSString alloc] initWithData:adata encoding:NSUTF8StringEncoding];
NSString->NSData
NSString *aString = @"1234abcd";
NSData *aData = [aString dataUsingEncoding: NSUTF8StringEncoding];
//将data类型的数据,转成UTF8的数据
+(NSString *)dataToUTF8String:(NSData *)data
{
NSString *buf = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
return [buf autorelease];
}
//将string转换为指定编码
+(NSString *)changeDataToEncodinString:(NSData *)data encodin:(NSStringEncoding )encodin{
NSString *buf = [[[NSString alloc] initWithData:data encoding:encodin] autorelease];
return buf;
}
2. NSData 与 UIImage
NSData->UIImage
UIImage *aimage = [UIImage imageWithData: imageData];
//例:从本地文件沙盒中取图片并转换为NSData
NSString *path = [[NSBundle mainBundle] bundlePath];
NSString *name = [NSString stringWithFormat:@"ceshi.png"];
NSString *finalPath = [path stringByAppendingPathComponent:name];
NSData *imageData = [NSData dataWithContentsOfFile: 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 *)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;
}
}
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];
NSData-> NSString
NSString *aString = [[NSString alloc] initWithData:adata encoding:NSUTF8StringEncoding];
NSString->NSData
NSString *aString = @"1234abcd";
NSData *aData = [aString dataUsingEncoding: NSUTF8StringEncoding];
//将data类型的数据,转成UTF8的数据
+(NSString *)dataToUTF8String:(NSData *)data
{
NSString *buf = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
return [buf autorelease];
}
//将string转换为指定编码
+(NSString *)changeDataToEncodinString:(NSData *)data encodin:(NSStringEncoding )encodin{
NSString *buf = [[[NSString alloc] initWithData:data encoding:encodin] autorelease];
return buf;
}
2. NSData 与 UIImage
NSData->UIImage
UIImage *aimage = [UIImage imageWithData: imageData];
//例:从本地文件沙盒中取图片并转换为NSData
NSString *path = [[NSBundle mainBundle] bundlePath];
NSString *name = [NSString stringWithFormat:@"ceshi.png"];
NSString *finalPath = [path stringByAppendingPathComponent:name];
NSData *imageData = [NSData dataWithContentsOfFile: 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 *)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;
}
}
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];
相关文章推荐
- Web监听器导图详解
- 数据库设计原则
- 欢迎使用CSDN-markdown编辑器
- Hadoop集群搭建
- sqlite查看所有表名及字段名,及判断是否存在的方法
- 借书系统异常处理
- 关于JAVA EE项目在WEB-INF目录下的jsp页面如何访问WebRoot中的CSS和JS文件
- 使用串口连接Arduino与树莓派开发板
- android键盘和界面挤压的问题解决办法
- 最简单也最难——如何获取到Android控件的高度
- Hinge loss
- 访问WEB-INF下的JSP (转载)
- 由AlphaGO引发的思考
- UIApplication详解再解-备
- python3之list列表
- share_ptr 小结
- samba服务器的安装
- JSP与servlet之间的传值方式
- 21. Merge Two Sorted Lists
- Android特效 五种Toast详解