美文网首页iOS记录
iOS开发之基础篇(8)—— NSData

iOS开发之基础篇(8)—— NSData

作者: 看影成痴 | 来源:发表于2017-11-07 18:58 被阅读23次

版本

Xcode 8.2.1

简介

NSData为二进制数据,在文件操作(如保存到本地)、网络、以及核心图形图像中使用较广泛。

NSData的创建

    //对象方法创建
    NSData *data1 = [[NSData alloc] init];
    NSData *data2 = [[NSData alloc] initWithData:data1];

    //类方法创建
    NSData *data3 = [NSData data];
    NSData *data4 = [NSData dataWithData:data3];

    //由文件创建
    NSString *filePath = [NSHomeDirectory() stringByAppendingString:@"/Desktop/test.txt"];  
    NSData *data5 = [[NSData alloc] initWithContentsOfFile:filePath];
    NSData *data6 = [NSData dataWithContentsOfFile:filePath];

    // 由 URL 创建
    NSURL *urlPath = [NSURL URLWithString:[@"file://" stringByAppendingString:[NSHomeDirectory() stringByAppendingString:@"/Desktop/test.txt"]]];
    NSData *data7 = [[NSData alloc] initWithContentsOfURL:urlPath];
    NSData *data8 = [NSData dataWithContentsOfURL:urlPath];

    // 由 字符串 创建
    NSString *string = @"bei jing nin hao";
    NSData *data9 = [string dataUsingEncoding:NSUTF8StringEncoding];
    NSData *data10 = [string dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];

    // 可变 NSData 的创建
    // 初始化时指定对象拥有的字节空间大小,在需要时会增加内存空间,在初始化时并没有分配内存空间
    NSMutableData *data11 = [[NSMutableData alloc] initWithCapacity:5];
    NSMutableData *data12 = [NSMutableData dataWithCapacity:5];

    // 初始化时为对象分配指定长度的归零字节
    NSMutableData *data13 = [[NSMutableData alloc] initWithLength:10];
    NSMutableData *data14 = [NSMutableData dataWithLength:10];

注:以上代码原文地址http://www.cnblogs.com/QianChia/p/5782732.html#_label0

NSData与NSString、Byte、UIImage之间的转换

    //NSString 转换成 NSData
    NSString *str = @"Hello";
    NSData *strData = [str dataUsingEncoding:NSUTF8StringEncoding];

    //NSData 转换成 NSString
    NSString *str1 = [[NSString alloc]initWithData:strData encoding:NSUTF8StringEncoding];

    //Byte 转换成 NSData
    Byte byte[] = {1,2,3,4,5,6,7,8,9,10};  
    NSData *byteData = [[NSData alloc] initWithBytes:byte length:10];

    //NSData 转换成 Byte 
    Byte *testByte = (Byte *)[byteData bytes]; 

    //UIImage 转换成 NSData
    NSData *imageData1 = UIImagePNGRepresentation(UIImage *image);     //png 格式 
    NSData *imageData2 = UIImageJPEGRepresentation(UIImage *image, CGFloat compressionQuality)  //jpeg格式  

    //NSData 转换成 UIImage
    UIImage *aimage = [UIImage imageWithData: imageData]; 

相关文章

  • iOS开发之基础篇(8)—— NSData

    版本 Xcode 8.2.1 简介 NSData为二进制数据,在文件操作(如保存到本地)、网络、以及核心图形图像中...

  • iOS 开发中NSData转NSString?

    『导言』 iOS 开发中NSData转NSString?如下所示: 方法: dataUsingEncoding: ...

  • iOS进阶系列之基础篇

    原文地址iOS进阶系列之基础篇 概述 基础篇包含的范围较广,是一个iOS开发者必须具备的知识。包含了以下方面:OC...

  • iOS 开发之动画篇 - 从 UIView 动画说起

    iOS 开发之动画篇 - 从 UIView 动画说起 iOS 开发之动画篇 - 从 UIView 动画说起

  • runtime总结

    iOS开发之Runtime 苹果官方文档 博客-iOS基础 iOS开发系列--并行开发其实很容易 优质博客列表 优...

  • iOS部分控件介绍及设计规范

    iOS及Android图标按钮设计规范 UI设计师需要了解的开发中常用的UI控件(ios篇) iOS交互设计基础之...

  • UI常用的控件

    #iOS开发之UI篇#iOS开发之UI篇 #常用控件介绍1## #UI第09天:滚动视图# ##UIScrollV...

  • iOS知识点(11)UITableView

    最基础的UITableView知识讲解iOS开发之UITableView全面解析 iOS UITableView的...

  • NSData和NSString的相互转化

    『导言』 iOS 开发中如何使NSData和NSSting相互转化? str转data:initWithData:...

  • KVC

    iOS 如何使用KVC iOS开发UI篇—Kvc简单介绍 iOS开发系列--Objective-C之KVC、KVO

网友评论

    本文标题:iOS开发之基础篇(8)—— NSData

    本文链接:https://www.haomeiwen.com/subject/jbajmxtx.html