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