NSData的用法

本文详细介绍了iOS开发中常见数据类型如NSData、NSString、UIImage、NSArray、NSDictionary及NSDate之间的转换方法,包括不同编码格式的处理,适用于网络数据通信及本地文件操作。

简介:

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];

转载于:https://www.cnblogs.com/ChouDanDan/p/5045454.html

这个是完整源码 python实现 Flask,Vue 【python毕业设计】基于Python的Flask+Vue物业管理系统 源码+论文+sql脚本 完整版 数据库是mysql 本文首先实现了基于Python的Flask+Vue物业管理系统技术的发展随后依照传统的软件开发流程,最先为系统挑选适用的言语和软件开发平台,依据需求分析开展控制模块制做和数据库查询构造设计,随后依据系统整体功能模块的设计,制作系统的功能模块图、E-R图。随后,设计框架,依据设计的框架撰写编码,完成系统的每个功能模块。最终,对基本系统开展了检测,包含软件性能测试、单元测试和性能指标。测试结果表明,该系统能够实现所需的功能,运行状况尚可并无明显缺点。本文首先实现了基于Python的Flask+Vue物业管理系统技术的发展随后依照传统的软件开发流程,最先为系统挑选适用的言语和软件开发平台,依据需求分析开展控制模块制做和数据库查询构造设计,随后依据系统整体功能模块的设计,制作系统的功能模块图、E-R图。随后,设计框架,依据设计的框架撰写编码,完成系统的每个功能模块。最终,对基本系统开展了检测,包含软件性能测试、单元测试和性能指标。测试结果表明,该系统能够实现所需的功能,运行状况尚可并无明显缺点。本文首先实现了基于Python的Flask+Vue物业管理系统技术的发展随后依照传统的软件开发流程,最先为系统挑选适用的言语和软件开发平台,依据需求分析开展控制模块制做和数据库查询构造设计,随后依据系统整体功能模块的设计,制作系统的功能模块图、E-R图。随后,设计框架,依据设计的框架撰写编码,完成系统的每个功能模块。最终,对基本系统开展了检测,包含软件性能测试、单元测试和性能指标。测试结果表明,该系统能够实现所需的功能,运行状况尚可并无明显缺点。本文首先实现了基于Python的Flask+Vue物业管理系统技术的发
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值