【发布时间】:2015-02-13 19:37:16
【问题描述】:
我有以下课程:
class RawDataArray {
var data: NSData!
init(filePath: String) {
data = NSData(contentsOfFile: filePath)
}
func read<T>(offset: Int) -> T {
return UnsafePointer<T>(data.bytes + offset).memory
}
}
我在我的 iOS 应用程序中使用它来读取具有自定义格式的二进制文件。例如,要在偏移量 5 处读取 Int,我使用:
let foo = rawData.read(5) as Int
这可以在我的 iPad Air 模拟器上运行,并且已经通过了 beta 测试的审查。但是,我的外部测试人员有 iPad 2s 和 4s,他们收到了EXC_ARM_DA_ALIGN 错误。
我无法更改输入文件的结构。有没有办法修复read 函数以确保对象是从正确对齐的内存位置构建的?
【问题讨论】:
标签: ios swift unsafe-pointers