2016-10-03 20 views
1

Der folgende Code funktionierte in früheren Swift-Versionen, der Compiler lehnt ihn ab. Ich brauche diese Funktion, um mit Swift von ObjecT zu interopieren.Schreiben in UnsafeMutablePointer in Swift 3

@objc public static func myFunc(jdUT: Double, _ lon: Double, _ lat: Double, 
              _ dayLen: Double, _ SbhDeg: Double, _ MgrbDeg: Double, 
              omsk: UnsafeMutablePointer<Double>) 
    { 
     var z = somefuncion() 
     // this line gives this error : Cannot assign to property: 'omsk' is a 'let' constant 
     omsk.memory=z; 
    } 

Antwort

1
@objc public static func myFunc(jdUT: Double, _ lon: Double, _ lat: Double, 
             _ dayLen: Double, _ SbhDeg: Double, _ MgrbDeg: Double, 
             inout omsk: UnsafeMutablePointer<Double>) 
{ 
    var z = somefuncion() 
    // this line gives this error : Cannot assign to property: 'omsk' is a 'let' constant 
    omsk.memory=z; 
} 

inout Hinzufügen vor dem omsk Parameter funktionieren sollte.

1

Die Fehlermeldung ist irreführend. Die memory Eigenschaft Unsafe(Mutable)Pointer wurde pointee in Swift umbenannt 3:

let z = someFunction() 
omsk.pointee = z 
Verwandte Themen