2017-02-06 5 views
0

Ich Migration Swift 2.x Projekt Swift 3.swift3 - wie UnsafeMutableBufferPointer konvertieren <CChar> zu UnsafeMutablePointer <utsname>

Ich habe Problem mit UnsafeMutableBufferPointer<CChar> zu UnsafeMutablePointer<utsname> in Swift 3-Syntax zu konvertieren.

Swift 2.x:

(ptr: inout UnsafeMutableBufferPointer<CChar>) -> DeviceTypes in 
     uname(UnsafeMutablePointer<utsname>(ptr.baseAddress)) 
+0

Was Ihr Problem ist: "Ich habe ein Problem"? – shallowThought

+0

Haben Sie versucht ["withMemoryRebound"] (https://developer.apple.com/reference/swift/unsafepointer/2430863-withmemoryrebound) – user28434

+0

@ user28434 Ja, aber ich habe nicht verstanden, wie man gleichwertigen Code mitMemoryRebound machen –

Antwort

1

Swift 3:

(ptr: inout UnsafeMutableBufferPointer<CChar>) -> DeviceTypes in 

     guard let pointer = ptr.baseAddress?.withMemoryRebound(to: utsname.self, capacity: 1, { ptr in 
      return ptr 
     }) else { 
      return DeviceTypes.unrecognized 
     } 
     uname(pointer) 
Verwandte Themen