NSData用于保存字节数组。

初始化

- (instancetype)initWithBytesNoCopy:(void *)bytes length:(NSUInteger)length freeWhenDone:(BOOL)b;

初始化对象。
不进行复制字节数组操作,直接设置字节指针为bytes,长度为length。 - (instancetype)initWithBytesNoCopy:(void *)bytes length:(NSUInteger)length; 初始化对象。
不进行复制字节数组操作,直接设置字节指针为bytes,长度为length。 - (instancetype)initWithBytes:(nullable const void *)bytes length:(NSUInteger)length; 初始化对象。
复制字节数组,设置字节指针指向复制的字节数组,长度为length。 - (nullable instancetype)initWithContentsOfFile:(NSString *)path; 读取文件内容初始化对象。
读取成功则返回对象,如果失败则返回nil。 - (nullable instancetype)initWithContentsOfFile:(NSString *)path options:(NSDataReadingOptions)readOptionsMask error:(NSError **)errorPtr; 读取文件内容初始化对象。
读取成功则返回对象。如果失败则返回nil,错误信息保存在errorPtr中。
参数readOptionsMask 指定文件读取选项。 typedef NS_OPTIONS(NSUInteger, NSDataReadingOptions) {
NSDataReadingMappedIfSafe = 1UL << ,
NSDataReadingUncached = 1UL << ,
NSDataReadingMappedAlways = 1UL << , NSDataReadingMapped = NSDataReadingMappedIfSafe,
NSMappedRead = NSDataReadingMapped,
NSUncachedRead = NSDataReadingUncached
}; - (nullable instancetype)initWithContentsOfURL:(NSURL *)url; 读取url内容初始化对象。
读取成功则返回对象,如果失败则返回nil。 - (nullable instancetype)initWithContentsOfURL:(NSURL *)url options:(NSDataReadingOptions)readOptionsMask error:(NSError **)errorPtr; 读取url内容初始化对象。
读取成功则返回对象。如果失败则返回nil,错误信息保存在errorPtr中。
参数readOptionsMask 指定文件读取选项。 - (instancetype)initWithData:(NSData *)data; 根据NSData对象初始化对象。 - (nullable id)initWithContentsOfMappedFile:(NSString *)path 根据文件内容初始化对象。读取文件内容的方式不是read系统调用,而是mmap系统调用。 构造 + (instancetype)data; 构造空的NSData对象。 + (instancetype)dataWithBytesNoCopy:(void *)bytes length:(NSUInteger)length freeWhenDone:(BOOL)b; 根据字节数组构造对象。不复制字节数组。 + (instancetype)dataWithBytesNoCopy:(void *)bytes length:(NSUInteger)length; 根据字节数组构造对象。不复制字节数组。 + (instancetype)dataWithBytes:(nullable const void *)bytes length:(NSUInteger)length; 根据字节数组构造对象。复制字节数组。 + (nullable instancetype)dataWithContentsOfFile:(NSString *)path; 根据文件内容构造对象。 + (nullable instancetype)dataWithContentsOfFile:(NSString *)path options:(NSDataReadingOptions)readOptionsMask error:(NSError **)errorPtr; 根据文件内容构造对象。 + (nullable instancetype)dataWithContentsOfURL:(NSURL *)url; 根据url内容构造对象。 + (nullable instancetype)dataWithContentsOfURL:(NSURL *)url options:(NSDataReadingOptions)readOptionsMask error:(NSError **)errorPtr; 根据url内容构造对象。 + (instancetype)dataWithData:(NSData *)data; 根据NSData对象构造对象。 + (nullable id)dataWithContentsOfMappedFile:(NSString *)path 根据文件内容构造对象。读取文件内容的方式不是read系统调用,而是mmap系统调用。 返回长度 @property (readonly) NSUInteger length; 返回数据 @property (readonly) const void *bytes 返回区间内的数据 - (void)getBytes:(void *)buffer range:(NSRange)range; 参数buffer保存获取的数据,参数range指定获取数据的区间。 - (void)getBytes:(void *)buffer length:(NSUInteger)length; 获取指定长度的数据。如果length大于数据长度,则使用数据长度作为指定长度。 - (void)getBytes:(void *)buffer 获取所有数据。 截取数据 - (NSData *)subdataWithRange:(NSRange)range; 参数range指定截取区间。 是否相等 - (BOOL)isEqualToData:(NSData *)other; 比较数据是否相等。 写入文件 - (BOOL)writeToFile:(NSString *)path options:(NSDataWritingOptions)writeOptionsMask error:(NSError **)errorPtr; 参数path指定文件路径。参数errorPtr在写入失败时保存出错信息。参数writeOptionsMask 表示写入文件时的可选项,可使用或运算符连接。其可能值为 typedef NS_OPTIONS(NSUInteger, NSDataWritingOptions) {
NSDataWritingAtomic = 1UL << ,
NSDataWritingWithoutOverwriting NS_ENUM_AVAILABLE(10_8, 6_0) = 1UL << , NSDataWritingFileProtectionNone NS_ENUM_AVAILABLE_IOS(4_0) = 0x10000000,
NSDataWritingFileProtectionComplete NS_ENUM_AVAILABLE_IOS(4_0) = 0x20000000,
NSDataWritingFileProtectionCompleteUnlessOpen NS_ENUM_AVAILABLE_IOS(5_0) = 0x30000000,
NSDataWritingFileProtectionCompleteUntilFirstUserAuthentication NS_ENUM_AVAILABLE_IOS(5_0) = 0x40000000,
NSDataWritingFileProtectionMask NS_ENUM_AVAILABLE_IOS(4_0) = 0xf0000000,
NSAtomicWrite = NSDataWritingAtomic
}; NSDataWritingAtomic 表示使用辅助文件完成原子操作。
NSDataWritingWithoutOverwriting 表示防止覆盖现有文件,不能与NSDataWritingAtomic 结合使用。 - (BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile; 写入文件。参数path指定文件路径,参数useAuxiliaryFile使用辅助文件完成原子操作。 写入url - (BOOL)writeToURL:(NSURL *)url options:(NSDataWritingOptions)writeOptionsMask error:(NSError **)errorPtr; 参数path指定url路径。参数errorPtr在写入失败时保存出错信息。参数writeOptionsMask 表示写入时的可选项,可使用或运算符连接。 - (BOOL)writeToURL:(NSURL *)url atomically:(BOOL)atomically; 写入url。参数path指定文件路径,参数atomically完成原子操作。 搜索 - (NSRange)rangeOfData:(NSData *)dataToFind options:(NSDataSearchOptions)mask range:(NSRange)searchRange 搜索数据。参数dataToFind为搜索的数据。参数searchRange为搜索的区间。参数mask 为搜索的方式。搜索方式可使用或运算符连接。
搜索方式有: typedef NS_OPTIONS(NSUInteger, NSDataSearchOptions) {
NSDataSearchBackwards = 1UL << ,
NSDataSearchAnchored = 1UL <<
} NSDataSearchBackwards表示从后向前搜索。
NSDataSearchAnchored表示只是搜索头部或尾部(与NSDataSearchBackwards连用)。 与Base64编码相关 - (nullable instancetype)initWithBase64EncodedString:(NSString *)base64String options:(NSDataBase64DecodingOptions)options 解码字符串。options为解码方式。 typedef NS_OPTIONS(NSUInteger, NSDataBase64DecodingOptions) {
NSDataBase64DecodingIgnoreUnknownCharacters = 1UL <<
} NS_ENUM_AVAILABLE(10_9, 7_0); NSDataBase64DecodingIgnoreUnknownCharacters 表示忽略不知道的字符。 - (NSString *)base64EncodedStringWithOptions:(NSDataBase64EncodingOptions)options 编码为字符串。参数options为编码方式。 typedef NS_OPTIONS(NSUInteger, NSDataBase64EncodingOptions) {
NSDataBase64Encoding64CharacterLineLength = 1UL << ,
NSDataBase64Encoding76CharacterLineLength = 1UL << ,
NSDataBase64EncodingEndLineWithCarriageReturn = 1UL << ,
NSDataBase64EncodingEndLineWithLineFeed = 1UL << , } NS_ENUM_AVAILABLE(10_9, 7_0); - (nullable instancetype)initWithBase64EncodedData:(NSData *)base64Data options:(NSDataBase64DecodingOptions)options 解码数据。 - (NSData *)base64EncodedDataWithOptions:(NSDataBase64EncodingOptions)options 编码数据。 - (nullable id)initWithBase64Encoding:(NSString *)base64String 解码字符串。 - (NSString *)base64Encoding 编码为字符串。
NSMutableData用于保存可变字节数组。 返回数据 @property (readonly) void *mutableBytes 返回长度 @property NSUInteger length; 初始化 - (nullable instancetype)initWithCapacity:(NSUInteger)capacity; 根据容量大小初始化对象。 - (nullable instancetype)initWithLength:(NSUInteger)length; 根据长度初始化对象。数组全部清空为0。 构造 + (nullable instancetype)dataWithCapacity:(NSUInteger)aNumItems; 根据容量大小构造对象。 + (nullable instancetype)dataWithLength:(NSUInteger)length; 根据长度构造对象。 添加 - (void)appendBytes:(const void *)bytes length:(NSUInteger)length; 添加数组。 - (void)appendData:(NSData *)other; 添加数据。 替换 - (void)replaceBytesInRange:(NSRange)range withBytes:(const void *)bytes; 替换字节数组。 - (void)replaceBytesInRange:(NSRange)range withBytes:(nullable const void *)replacementBytes length:(NSUInteger)replacementLength; 替换字节数组。参数replacementLength指定替换数组的长度。 增加长度 - (void)increaseLengthBy:(NSUInteger)extraLength; 重置 - (void)resetBytesInRange:(NSRange)range; 重置区间内数据为0。 设置 - (void)setData:(NSData *)data;

ios开发之NSData的更多相关文章

  1. iOS开发之Socket通信实战--Request请求数据包编码模块

    实际上在iOS很多应用开发中,大部分用的网络通信都是http/https协议,除非有特殊的需求会用到Socket网络协议进行网络数 据传输,这时候在iOS客户端就需要很好的第三方CocoaAsyncS ...

  2. iOS开发之UISearchBar初探

    iOS开发之UISearchBar初探 UISearchBar也是iOS开发常用控件之一,点进去看看里面的属性barStyle.text.placeholder等等.但是这些属性显然不足矣满足我们的开 ...

  3. iOS开发之UIImage等比缩放

    iOS开发之UIImage等比缩放 评论功能真不错 评论开通后,果然有很多人吐槽.谢谢大家的支持和关爱,如果有做的不到的地方,还请海涵.毕竟我一个人的力量是有限的,我会尽自己最大的努力大家准备一些干货 ...

  4. iOS开发之 Xcode6 添加xib文件,去掉storyboard的hello world应用

    iOS开发之  Xcode6.1创建仅xib文件,无storyboard的hello world应用 由于Xcode6之后,默认创建storyboard而非xib文件,而作为初学,了解xib的加载原理 ...

  5. iOS开发之loadView、viewDidLoad及viewDidUnload的关系

    iOS开发之loadView.viewDidLoad及viewDidUnload的关系 iOS开发之loadView.viewDidLoad及viewDidUnload的关系    标题中所说的3个方 ...

  6. iOS开发之info.pist文件和.pch文件

    iOS开发之info.pist文件和.pch文件 如果你是iOS开发初学者,不用过多的关注项目中各个文件的作用.因为iOS开发的学习路线起点不在这里,这些文件只会给你学习带来困扰. 打开一个项目,我们 ...

  7. iOS开发之WKWebView简单使用

    iOS开发之WKWebView简单使用   iOS开发之 WKWebVeiw使用 想用UIWebVeiw做的,但是突然想起来在iOS8中出了一个新的WKWebView,算是UIWebVeiw的升级版. ...

  8. iOS 开发之Block

    iOS 开发之Block 一:什么是Block.Block的作用 UI开发和网络常见功能的实现回调,按钮事件的处理方法是回调方法. 1.     按钮事件 target action 机制. 它是将一 ...

  9. iOS开发之Xcode常用调试技巧总结

    转载自:iOS开发之Xcode常用调试技巧总结 最近在面试,面试过程中问到了一些Xcode常用的调试技巧问题.平常开发过程中用的还挺顺手的,但你要突然让我说,确实一脸懵逼.Debug的技巧很多,比如最 ...

随机推荐

  1. 浏览器渲染基本原理(二):JS引擎的工作方式

    JS引擎也可以叫做JS解释器 浏览器的组成 浏览器的核心是两部分:渲染引擎和JavaScript解释器(又称JavaScript引擎). (1)渲染引擎 渲染引擎的主要作用是,将网页从代码“渲染”为用 ...

  2. Spring Boot源码中模块详解

    Spring Boot源码中模块详解 一.源码 spring boot2.1版本源码地址:https://github.com/spring-projects/spring-boot/tree/2.1 ...

  3. ai segmentation

    不只是医学图像啊,自然图像分割用unet也能取得非常好的效果.搞过kaggle语义分割的比赛carvana.感觉最好用的还是unet,其次linknet和提拉米苏也好用.large kernel也不错 ...

  4. plsql 的三种循环

    set serveroutput on declare pnum ; begin loop dbms_output.put_line(pnum); pnum :; end loop; end; / s ...

  5. [LeetCode] 113. Path Sum II 路径和 II

    Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the given su ...

  6. jenkins:新增节点是启动方式没有Launch agent by connecting it to the master

    默认在这里的配置是禁用 所以启动方式只有两种,缺少Launch agent by connecting it to the master

  7. ply2obj

    """ Simple script to convert ply to obj models """ import os from argp ...

  8. 一分钟 - 创建python虚拟环境

    python创建虚拟环境 python安装第三方库大都是通过pip命令安装,这个命令确实是很简便的,而对于每个独立的项目来说,需要用到的库或许会不同,如果删除或更新原来已有的版本库,或许会导致其他的项 ...

  9. Centos 安装mysql8

    Centos 安装mysql ,转载 https://www.cnblogs.com/funbin/p/11154784.html 1.下载mysql wget -i -c https://repo. ...

  10. flask框架(三)——路由系统route转换成add_url_rule及源码分析

    这节我们不用@app.route来写路由,而是通过add_url_rule 传统写法  (<int:nid>传递int类型参数,endpoint是取别名) @app.route('/det ...