我有以下课程:
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 应用程序中使用它来读取具有自定义格式的二进制文件。例如,要读取Int
偏移量 5 处的值,我使用:
let foo = rawData.read(5) as Int
这可以在我的 iPad Air 模拟器上运行,并且已经通过了 beta 测试的审查。但是,我的外部测试人员有 iPad 2s 和 4s,他们遇到了EXC_ARM_DA_ALIGN
错误。
我无法更改输入文件的结构。有什么方法可以修复该read
功能以确保对象是从正确对齐的内存位置构建的?