3

我正在尝试对 2 个 CLLocationDegrees 对象数组进行排序,以便我可以确定最小和最大纬度和经度,以便使用 Swift 将地图居中。

var latitudes = [CLLocationDegrees]()
var longditudes = [CLLocationDegrees]()

self.latitudes.append(mylocation.coordinate.latitude)
self.longditudes.append(mylocation.coordinate.longitude)

latitudes = latitudes.sort({ $0 < $1 })
longditudes = longditudes.sort({ $0 < $1 })

当我对数组进行排序时,出现错误:“()不可转换为类型 [(CLLocationDegrees)]”

我不确定我是否理解这一点,CLLocationDegree 对象存储为 Double 值,为什么我不能以这种方式对它们进行排序?

4

2 回答 2

3

把它放到一个操场上,看看有两种方法可以做你想做的事情

import UIKit
import CoreLocation

var latitudes : [CLLocationDegrees] = []
var longditudes :[CLLocationDegrees] = []

latitudes.append(100.0) // Just using a Double as an example
longditudes.append(120.0)

latitudes.sort() {
    $0 < $1
}

longditudes.sort({ $0 < $1 })

sort就地执行排序,因此您不能将其分配给自身。

于 2014-12-31T23:18:00.013 回答
2

只需尝试阅读编译器所说的内容。"()不能转换为类型[(CLLocationDegrees)]()意思是Void。没错。Void只是类型别名的空元组()。所以编译器说你正在分配VoidCLLocationDegrees数组。这意味着latitudes.sort({ $0 < $1 })返回Void

从这里您可以继续阅读@Abizern 的答案。

于 2015-01-01T00:40:31.200 回答