Mam następujący problem. Chcę przekonwertować moją starą funkcję (działa do Swift 3 beta 5):Użycie withMemoryRebound z jabłkami Swift 3 beta 6
func binarytotype <T> (_ value: [UInt8], _: T.Type) -> T
{
return value.withUnsafeBufferPointer
{
return UnsafePointer<T>($0.baseAddress!).pointee
}
}
Do składni Swift 3 beta 6. Funkcja ta przekształca tablicę Uint8 do innego typu, na przykład:
let b: [UInt8] = [1,2,3,4,5,6,7,8]
var number: Double = binarytotype(b, Double.self)
Ale teraz to nie działa dłużej w beta 6 i muszę używać withMemoryRebound ale ja naprawdę nie wiem, jak to zrobić biegać. Czy ktoś może mi pomóc?
Odwrotna funkcja ta była:
func typetobinary <T> (_ value: T) -> [UInt8]
{
var v: T = value
return withUnsafePointer(to: &v)
{
Array(UnsafeBufferPointer(start: UnsafePointer<UInt8>($0), count: MemoryLayout<T>.size))
}
}
To nie działa dłużej, zbyt. Taki sam problem. Oba są potrzebne w przypadku niektórych moich projektów. Ta funkcja Reverse nazwano jako:
var binary: [UInt8] = typetobinary(number)
Działa doskonale, dziękuję bardzo !!! –