【发布时间】:2020-02-27 17:03:57
【问题描述】:
我导入了一个名为 geoToH3 的 C 函数,它返回一个 H3Index(它只是一个 UInt64)。
let h3Index = geoToH3(g: UnsafePointer<GeoCoord>!, r: Int32)
该函数接受一个Int32 和一个GeoCoord 对象,这只是一个带有一对Double 的对象。
let geoCoord = GeoCoord(lat: 45.0, lon: -90.0)
我如何将geoCoord 参数传递给这个函数,因为它需要一个UnsafePointer?
【问题讨论】:
-
@MartinR
withUnsafePointer泛型函数将返回GeoCoord的类型,据我了解它是如何工作的,但 C 函数需要UnsafePointer<GeoCoord>类型的参数。或者它可以返回一个不安全的指针吗? -
应该是
let h3Index = withUnsafePointer(to: geoCoord) { geoToH3($0, 5) },类似于stackoverflow.com/a/60352083/1187415。 -
您可以将此作为答案,因为这完美地回答了我的问题,谢谢!
标签: swift interop unsafe-pointers