致命错误:从未alignment的原始指针加载

对于iPhone5(10.2)模拟器这个function:

static func fromByteArray<T>(_ value: [UInt8], _: T.Type) -> T { return value.withUnsafeBytes { $0.baseAddress!.load(as: T.self) } } 

崩溃在$0.baseAddress!.load(as: T.self)与此错误:

致命错误:从未alignment的原始指针加载

有人知道解决scheme吗?

我正在使用这个代码:

https://stackoverflow.com/a/26954091/1979882

编辑它适用于iPhone5s,但不适用于iPhone5

事实上,它如你所描述的那样崩溃。 解决方法是使用此函数将字节数组转换为所需的types:

 func fromByteArray<T>(_ value: [UInt8], _: T.Type) -> T { return value.withUnsafeBufferPointer { $0.baseAddress!.withMemoryRebound(to: T.self, capacity: 1) { $0.pointee } } } 

这是我testing的结果(红色因不明原因而导致iPhone 5模拟器死机): 在这里输入图像说明