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. uniapp - 键盘弹起背景图片不会被挤压

    [释义] uni.getSystemInfoSync()获取屏幕可用高度windowScreen做为背景图高度即可(非虚拟DOM也可以使用本思路). [源码] <template> < ...

  2. 自动化远程部署shell脚本

    历史原因,有一段时间,项目开发采用一种模式:项目开发及代码版本管理在外网,而主要测试在内网.所以为了同步开发进度,每天会将所有服务在外网jenkins上打包好,然后将服务jar包拷进内网,由于内网服务 ...

  3. Android : Camera HAL3的参数传递(CameraMetadata)

    一.camera_metadata简介 Camera API2/HAL3架构下使用了全新的CameraMetadata结构取代了之前的SetParameter/Paramters等操作,实现了Java ...

  4. 最稳定万能vip视频解析接口 支持HTTPS

    最稳定万能vip视频解析接口 支持HTTPS https://cdn.yangju.vip/k/?url=后面加上播放的地址即可 https://cdn.yangju.vip/k/?url= http ...

  5. git让线上代码强制覆盖本地的

    git强制覆盖本地命令(分步执行): git fetch --all    git reset --hard origin/master    git pull git强制覆盖本地命令(单条执行):  ...

  6. 【神经网络与深度学习】【计算机视觉】Faster R-CNN

    Faster R-CNN Fast-RCNN基本实现端对端(除了proposal阶段外),下一步自然就是要把proposal阶段也用CNN实现(放到GPU上).这就出现了Faster-RCNN,一个完 ...

  7. IDEA 2019 注册码

     CATF44LT7C-eyJsaWNlbnNlSWQiOiJDQVRGNDRMVDdDIiwibGljZW5zZWVOYW1lIjoiVmxhZGlzbGF2IEtvdmFsZW5rbyIsImFz ...

  8. 「模拟赛20191019」B 容斥原理+DP计数

    题目描述 将\(n\times n\)的网格黑白染色,使得不存在任意一行.任意一列.任意一条大对角线的所有格子同色,求方案数对\(998244353\)取模的结果. 输入 一行一个整数\(n\). 输 ...

  9. LeetCode 611. 有效三角形的个数(Valid Triangle Number)

    611. 有效三角形的个数 611. Valid Triangle Number 题目描述 LeetCode LeetCode LeetCode611. Valid Triangle Number中等 ...

  10. Jetson TX2

    NVIDIA Jetson TX2作为一个嵌入式平台的深度学习端,具备不错的GPU性能,可以发现TX2的GPU的计算能力是6.2.这意味着TX2对半精度运算有着良好的支持,因此,完全可以在桌面端训练好 ...