Verwendung von withMemoryRebound mit Apples Swift 3 Beta 6
Ich habe das folgende Problem. Ich möchte meine alte Funktion konvertieren (funktionierte bis Swift 3 Beta 5):
func binarytotype <T> (_ value: [UInt8], _: T.Type) -> T
{
return value.withUnsafeBufferPointer
{
return UnsafePointer<T>($0.baseAddress!).pointee
}
}
Um Swift 3 Beta 6 Syntax. Diese Funktion konvertiert ein Array von UInt8 in einen anderen Typ, zum Beispiel:
let b: [UInt8] = [1,2,3,4,5,6,7,8]
var number: Double = binarytotype(b, Double.self)
Aber im Moment funktioniert dies in Beta 6 nicht mehr und ich muss withMemoryRebound verwenden, aber ich weiß wirklich nicht, wie ich es zum Laufen bringen soll. Kann mir jemand helfen
Die umgekehrte Funktion war:
func typetobinary <T> (_ value: T) -> [UInt8]
{
var v: T = value
return withUnsafePointer(to: &v)
{
Array(UnsafeBufferPointer(start: UnsafePointer<UInt8>($0), count: MemoryLayout<T>.size))
}
}
Das funktioniert auch nicht mehr. Gleiches Problem. Beides wird für einige meiner Projekte benötigt. Diese Umkehrfunktion wurde aufgerufen als:
var binary: [UInt8] = typetobinary(number)