Swift 4からCのインターフェースで提供されるframeworkを呼び出すにあたって、ファイルから読み込んだバイナリーデーターのポインターを関数に渡す必要があります。

バイナリーデーター自体はSwiftの

let data: Data = try Data(contentsOf: dataURL)

で読み込んだのは良いのですが、このdataからUnsafePointer<Int8>!で、データー列の先頭アドレスを取得する一般的な方法はどの様になるのでしょうか?

  • .withUnsafeBytes<Int8>で愚直にコピーする
  • DataではなくNSData.bytesをキャストする

が考えられますが、もっと素直に変換または取得出来るような気がするため、こうするといいよという方法がありましたらお教え下さい。