2016-10-03 6 views
1

以下のコードは以前のバージョンのSwiftで動作していましたが、現在コンパイラはそれを拒否しています。 ObjectiveCからSwiftと相互運用するには、この関数が必要です。オムスクパラメータが動作するはずの前にINOUTを追加Swift 3のUnsafeMutablePointerでの書き出し

@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; 
    } 

答えて

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; 
} 

1

エラーメッセージは誤解を招く可能性があります。 Unsafe(Mutable)Pointermemoryプロパティはスウィフト3にpointeeに名前が変更されました:

let z = someFunction() 
omsk.pointee = z 
関連する問題