Я следую за this классом в Swift и приложениях для строительства.Swift 2: Селектор в UIPinchGestureRecognizer: Как получить доступ к func из другого класса
В 43:30 на видео инструктор учит, как настроить UIPinchGestureRecognizer
, который принимает функцию из другого файла в своем Селекторе.
Это код инструктор использует:
@IBOutlet weak var faceView: FaceView! {
didSet {
faceView.addGestureRecognizer(UIPinchGestureRecognizer(target: faceView, action: #selector(FaceView.changeScale(_:))))
updateUI()
}
}
Я получаю 2 ошибки:
Expected expression in list of expressions,
и:
Expected ',' separator.
Я попытался изменить #selector
к Selector
не повезло.
функция changeScale
:
func changeScale(recognizer: UIPinchGestureRecognizer)
{
switch recognizer.state {
case .Changed, .Ended:
scale *= recognizer.scale //scale is the displayed image scale
recognizer.scale = 1.0
default:
break
}
Если я окружать Selector
аргумент в кавычки, происходит сбой приложения, когда я ущипнуть, давая следующее сообщение об ошибке:
unrecognized selector sent to instance.
где вы объявили 'changeScale'? В вашем классе 'FaceView' или в контроллере представления? – pbodsk
@pbodsk Я объявил это в FaceView. – Marcel
ОК ...Я просто попытался создать небольшой пример, и он работает на моей машине (которую вы, вероятно, не хотите слышать :)). Я попытался оглядеться, чтобы увидеть, есть ли у других проблемы с одинаковой проблемой, и похоже, что у некоторых были проблемы со старыми версиями Xcode, поэтому ... какую версию Xcode вы используете? Вам нужно хотя бы Xcode 7.3 (http://stackoverflow.com/questions/36347570/swift-error-expected-separator-and-expected-expression-in-list-of-expre). – pbodsk