当前位置: 代码迷 >> 综合 >> 【IOS 开发学习总结-OC-33】★★objective-c之文件 I/O概述+NSData/NSMutableData
  详细解决方案

【IOS 开发学习总结-OC-33】★★objective-c之文件 I/O概述+NSData/NSMutableData

热度:0   发布时间:2024-01-19 01:31:56.0

I/O是指 objective-c 的输入与输出。通过I/O,应用程序可以把程序运行状态 保存到磁盘文件或网络中——这样可保证这程序从这些文件或网络上恢复程序的运行状态。
objective-c 提供了丰富的 I/O 相关的 API:
1. NSFileManager:如果,只需要管理文件和目录,程序可使用NSFileManager 进行管理,包括创建,删除,移动,复制文件等;
2. NSFileHandle: 如果程序需要读取文件内容,则可通过NSFileHandle进行处理;;
3. NSURL:如果要读取网络资源,则可以通过 NSURL 进行处理;
4. NSBundle:如果只是读取项目内部的资源,则可 借助 NSBundle 进行处理。

使用NSData 与NSMutableData

foundation提供了NSData 与NSMutableData,它们代表 objective-c 的数据缓冲区
NSData和NSMutableData存储的是二进制数据,在文件操作,网络,以及核心图形图像中使用较广泛。NSData创建后不可以再修改,NSMutableData可以再次修改。

NSData的作用

  1. 对数据读取 NSData;
  2. 输出 NSData 的数据。

NSData 的创建与使用

NSData 的创建

同样有2种方法:类方法(以 data 开头),实例方法(以 init 开头)。
这些方法有:
1. data: 创建一个不含任何数据的,空的 NSData 对象。
2. dataWithBytes: length:/initWithBytes: length: 复制C数组所包含的数据来初始化 NSData 的数据。
3. initWithBytesNoCopy:<#(nonnull void *)#> length:<#(NSUInteger)#>dataWithBytesNoCopy:<#(nonnull void *)#> length:<#(NSUInteger)#>:直接利用C 数组包含的数据来初始化 NSData 对象,当该对象被执行malloc 方法销毁自己时,程序会释放该 C 数组。
4. dataWithBytesNoCopy:<#(nonnull void *)#> length:<#(NSUInteger)#> freeWhenDone:<#(BOOL)#>initWithBytesNoCopy:<#(nonnull void *)#> length:<#(NSUInteger)#> freeWhenDone:<#(BOOL)#> :直接利用C 数组包含的数据来初始化 N