У меня есть следующий класс:EXC_ARM_DA_ALIGN при чтении из NSData в Swift
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 и прошел обзор для бета-тестирования. Тем не менее, мои внешние тестеры имеют iPad 2s и 4s, и они получают ошибки EXC_ARM_DA_ALIGN
.
Я не могу изменить структуру входного файла. Есть ли способ исправить функцию read
, чтобы убедиться, что объекты построены из правильно выровненных мест памяти?
Большое спасибо за сохранение моих выходных! Я собирался начать писать ужасный код для смещения байтов и т. Д. – Eduardo
@Eduardo: Добро пожаловать! –