在Swift中将UnsafeMutablePointer <cllocationcoordinate2d>转换为[CLLocationCoordinate2D] </cllocationcoordinate2d>

时间:2015-01-08 12:04:36

标签: ios swift

我在Swift中编写了一个应用程序并且正在桥接一些Objective-C代码。其中一个类有一个如下所示的方法:+ (CLLocationCoordinate2D *)polylineWithEncodedString:(NSString *)encodedString;

在Swift中,它说这个方法返回UnsafeMutablePointer<CLLocationCoordinate2D>。我想要的是一个CLLocationCoordinate2D的Swift数组。

什么显然不起作用,但我试过,是这样的:

let coordinates: [CLLocationCoordinate2D] = TheClass.polylineWithEncodedString(encodedString)

会给我以下错误:

'UnsafeMutablePointer<CLLocationCoordinate2D>' is not convertible to '[CLLocationCoordinate2D]'

以某种方式可以将此UnsafeMutablePointer<CLLocationCoordinate2D>转换为[CLLocationCoordinate2D]吗?或者我应该采取不同的方法?

1 个答案:

答案 0 :(得分:0)

您可以使用UnsafeMutablePointer的 memory 属性,该属性是指针后面的数据。但请记住 UnsafeMutablePointer&lt; CLLocationCoordinate2D&gt; 将返回一个CLLocationCoordinate2D,而不是一个数组,就像在obj c函数中声明的一样。

var coordinate: CLLocationCoordinate2D = TheClass.polylineWithEncodedString(encodedString).memory