致命错误:从未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模拟器死机):