【发布时间】:2017-03-24 18:21:20
【问题描述】:
我有以下 Place 类的对象数组:
class Place: NSObject {
var distance:Double = Double()
init(_ distance: Double) {
self.distance = distance
}
}
let places = [Place(1.5), Place(8.4), Place(4.5)]
我需要获得距离最短的地方。 我尝试使用
let leastDistancePlace = places.min { $0.distance > $1.distance }
根据this 对类似问题的回答,但它给出了以下错误。
上下文闭包类型 '(Place) -> _' 需要 1 个参数,但 2 个是 用于闭包体
PS:
根据@robmayoff 的回答,我在操场上尝试了以下操作,但一直出现错误:
类型 [Place] 的值无成员 min
我的 swift 版本是:Apple Swift 2.2 版 (swiftlang-703.0.18.8 clang-703.0.31)
【问题讨论】:
-
您应该使用
max或min(如引用的答案),而不是map -
“它不起作用”信息不足。它是如何失败的?你得到一个编译时错误吗?您是否收到运行时错误?它是否编译并运行但产生错误的答案?请编辑您的问题以包含这些详细信息。
-
顺便说一句,在您的尝试中,您说的是
places.map,但您链接的答案是places.max。也许你想说places.min? -
为什么你leave a comment在引用的答案“它应该是地图”然后问一个新的问题“地图不起作用”?
-
我已将您更新的代码复制到一个新的 Xcode 8.2.1/Swift 3 项目中,它可以毫无问题地编译(和运行)。