NSData的用法

简介:

1. NSData 与 NSString

NSData-> NSString:

  NSString *aString = [[NSString alloc] initWithData:adataencoding: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];

时间: 2024-08-29 21:53:08

NSData的用法的相关文章

iOS开发-文件管理之多的是你不知道的事(一)

郝萌主倾心贡献,尊重作者的劳动成果,请勿转载. 如果文章对您有所帮助,欢迎给作者捐赠,支持郝萌主,捐赠数额随意,重在心意^_^ 我要捐赠: 点击捐赠 Cocos2d-X源码下载:点我传送 游戏官方下载:http://dwz.cn/RwTjl 游戏视频预览:http://dwz.cn/RzHHd 游戏开发博客:http://dwz.cn/RzJzI 游戏源码传送:http://dwz.cn/Nret1 一.iOS中的沙盒机制 iOS应用程序只能对自己创建的文件系统读取文件,这个独立.封闭.安全的空

iOS开发-文件管理

一.iOS中的沙盒机制 iOS应用程序只能对自己创建的文件系统读取文件,这个独立.封闭.安全的空间,叫做沙盒.它一般存放着程序包文件(可执行文件).图片.音频.视频.plist文件.sqlite数据库以及其他文件. 每个应用程序都有自己的独立的存储空间(沙盒) 一般来说应用程序之间是不可以互相访问 模拟器沙盒的位置 /User/userName/Library/Application Support/iPhone Simulator 当我们创建应用程序时,在每个沙盒中含有三个文件,分别是Docu

iOS开发-文件管理(一)

一.iOS中的沙盒机制 iOS应用程序只能对自己创建的文件系统读取文件,这个独立.封闭.安全的空间,叫做沙盒.它一般存放着程序包文件(可执行文件).图片.音频.视频.plist文件.sqlite数据库以及其他文件. 每个应用程序都有自己的独立的存储空间(沙盒) 一般来说应用程序之间是不可以互相访问 模拟器沙盒的位置 /User/userName/Library/Application Support/iPhone Simulator 当我们创建应用程序时,在每个沙盒中含有三个文件,分别是Docu

【转】iOS开发-文件管理(一)

iOS开发-文件管理(一) 一.iOS中的沙盒机制 iOS应用程序只能对自己创建的文件系统读取文件,这个独立.封闭.安全的空间,叫做沙盒.它一般存放着程序包文件(可执行文件).图片.音频.视频.plist文件.sqlite数据库以及其他文件. 每个应用程序都有自己的独立的存储空间(沙盒) 一般来说应用程序之间是不可以互相访问 模拟器沙盒的位置 /User/userName/Library/Application Support/iPhone Simulator 当我们创建应用程序时,在每个沙盒中

ios文件管理

一.iOS中的沙盒机制 iOS应用程序只能对自己创建的文件系统读取文件,这个独立.封闭.安全的空间,叫做沙盒.它一般存放着程序包文件(可执行文件).图片.音频.视频.plist文件.sqlite数据库以及其他文件. 每个应用程序都有自己的独立的存储空间(沙盒) 一般来说应用程序之间是不可以互相访问 模拟器沙盒的位置 /User/userName/Library/Application Support/iPhone Simulator 当我们创建应用程序时,在每个沙盒中含有三个文件,分别是Docu

iOS路径沙盒文件管理(转载)

iOS路径沙盒文件管理,看到博主总结的很好,转载过来,原文:http://www.aichengxu.com/view/35264 一.iOS中的沙盒机制 iOS应用程序只能对自己创建的文件系统读取文件,这个独立.封闭.安全的空间,叫做沙盒.它一般存放着程序包文件(可执行文件).图片.音频.视频.plist文件.sqlite数据库以及其他文件. 每个应用程序都有自己的独立的存储空间(沙盒) 一般来说应用程序之间是不可以互相访问 模拟器沙盒的位置 /User/userName/Library/Ap

IOS路径沙盒文件管理

iOS路径沙盒文件管理,有需要的朋友可以参考下. 一.iOS中的沙盒机制 iOS应用程序只能对自己创建的文件系统读取文件,这个独立.封闭.安全的空间,叫做沙盒.它一般存放着程序包文件(可执行文件).图片.音频.视频.plist文件.sqlite数据库以及其他文件. 每个应用程序都有自己的独立的存储空间(沙盒) 一般来说应用程序之间是不可以互相访问 模拟器沙盒的位置 /User/userName/Library/Application Support/iPhone Simulator 当我们创建应

NSData的一些用法

//NSData遵循NSCopying NSCoding协议,它提供面向对象的数组存储为字节 //适用与读写文件,而读写文件的时候需要一个缓冲区,而NSDate就提供了这么一个缓存区 //定义一个char类型的字符串 const char * string = "Hi there ,this is a C string"; //建立缓冲区,把字符串添加进去 NSData * data = [NSData dataWithBytes:string length:strlen(string

UIActivityViewController的相关用法--NSData的发送和接收

通过AirDrop发送一张图片或者一个文件,需要序列化实现了NSActivityItemSource的容器类实例,以NSData的数据格式传输.app发送/接收自定义的类型实例,还需要创建一个自定义的UTI,需要在Targets的info中添加两个节点:Document Types 和 Exported Type UTIs; 1.Document Types: app注册此字段后可以接受自定义的UTI,同时这个字段也可以用来接收其他标准的UTI文件类型. 2.Exported Type UTIs