Использование withMemoryRebound с Apples Swift 3 beta 6
У меня есть следующая проблема. Я хочу преобразовать мою старую функцию (работала до Swift 3 beta 5):
func binarytotype <T> (_ value: [UInt8], _: T.Type) -> T
{
return value.withUnsafeBufferPointer
{
return UnsafePointer<T>($0.baseAddress!).pointee
}
}
Свифт 3 бета 6 Синтаксис. Эта функция преобразует массив UInt8 в другой тип, например:
let b: [UInt8] = [1,2,3,4,5,6,7,8]
var number: Double = binarytotype(b, Double.self)
Но сейчас это не работает больше в бета-версии 6, и я должен использовать withMemoryRebound, но я действительно не знаю, как заставить его работать. Кто-нибудь может мне помочь?
Обратной функцией этого было:
func typetobinary <T> (_ value: T) -> [UInt8]
{
var v: T = value
return withUnsafePointer(to: &v)
{
Array(UnsafeBufferPointer(start: UnsafePointer<UInt8>($0), count: MemoryLayout<T>.size))
}
}
Это тоже больше не работает. Та же проблема. Оба необходимы для некоторых из моих проектов. Эта обратная функция была названа как:
var binary: [UInt8] = typetobinary(number)