对CLLocationDegrees对象进行排序

时间:2014-12-31 22:51:54

标签: ios swift cllocationcoordinate2d

我正在尝试对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值,为什么我不能以这种方式对它们进行排序?

2 个答案:

答案 0 :(得分: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执行排序,因此您无法将其分配给自身。

答案 1 :(得分:2)

试着阅读编译器说的内容。 “()无法转换为[(CLLocationDegrees)]类型。()表示Void。这是正确的。Void只是基于类型的空元组,{{1}所以编译器说你要将()分配给Void数组。这意味着CLLocationDegrees会返回latitudes.sort({ $0 < $1 })

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