swift - 如何在 Swift 中以二进制形式打开文件

标签 swift

我是 Swift 的新手,我不确定如何获取文件并将其存储在二进制数组中。

我确实知道如何获取一个文件,但我不知道如何将它存储在一个稍后会被修改的二进制数组中。

假设变量“chosenFile”是我选择的文件(NSData 类型) 变量“bArray”([int8] 数组)是用于存储文件二进制表示的数组。

var bArray: [Int8] = [Int8]()
var chosenFile: NSData! = NSData(contentsOfURL: "xxxxxxxx")

有什么帮助吗?

最佳答案

如果您创建 NSMutableData 的实例, 您可以使用 mutableBytes property获取对基础数据的引用。在 C 中,这将是一个 void * ;在 Swift 中,它是一个 UnsafeMutablePointer<Void> .

然后您可以直接使用这些数据(不需要另一个字节数组)。只要你在length范围内的 NSMutableData ,你可以,例如,replace individual bits of data, or indeed the entirety of the data .

或者,您可以使用 replaceBytesInRange:withBytes:,而不是直接处理原语。选择性地修改部分数据。这也在 the documentation 中进行了解释。 .

关于swift - 如何在 Swift 中以二进制形式打开文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27771621/

相关文章:

ios - 在没有 open var 的情况下使用 segues 将数据传递给另一个 vc 的方法

ios - 重新加载数据后,UITableView 中的 UIView 动画不起作用

ios - swift 3 : How to set up UINavigationBar setBackgroundImage in AppDelegate

iOS 发送消息时出现错误 404 远程服务器未找到错误

ios - 编译器无法对表达式Swift 5进行类型检查?

ios - 应用关闭时如何在本地通知上打开VC

ios - 文本字段和警告

ios - 将多个 UILabels 居中放置在一行上

ios - 从 Firebase 数组中检索数据

xcode - 如何找出(使用 XCTest UITest)在 tvOS AppleTV 的表格 View 中具有焦点的单元格?