我正在尝试将行segmentedControl.addTarget(self, action: "mapTypeChanged:", for: .valueChanged)
更改为在swift 3.0中工作。据我所知,"mapTypeChanged:"
是一个任意名称,可能是任何东西,所以它不是我在其他任何地方所做的功能。从在线的所有其他来源我被告知放segmentedControl.addTarget(self, action: #selector(class.mapTypeChanged, for: .valueChanged)
,但我不知道与此相关的任何类?
该行之后的函数声明是:
func mapTypeChanged(segControl: UISegmentedControl) {
switch segControl.selectedSegmentIndex {
case 0:
mapView.mapType = .standard
case 1:
mapView.mapType = .hybrid
case 2:
mapView.mapType = .satellite
default:
break
}
}
我该怎么做才能解决这个问题?感谢。
我正在阅读一本书,这就是我得到原始行的地方,但它是在swift 3.0之前编写的。到目前为止,Xcode已经很好地为我做了更改,但是在我做出建议的更改后,这个没有正常运行。我被卡住了。
解决:segmentedControl.addTarget(self, action: #selector(mapTypeChanged), for: .valueChanged)
我现在觉得很愚蠢,因为我自己写了一个字面意义上的函数。我的脑子里画了一个空白,我只是没有连接点。从来没有我还不知道swift 3.0的语法是如何用于原始代码的。谢谢大家的帮助!
答案 0 :(得分:2)
写
action: #selector(mapTypeChanged),
一切都会好的。
答案 1 :(得分:1)
写
# modify data for retain.columns
for (var in retain.columns)
O[[var]] <- ifelse(M$is.new, as.character(M[[paste0(var, ".new")]]),
as.character(M[[paste0(var, ".old")]]))