Я переключаю синтаксис моего проекта на Swift 2.2 (который xCode помогает мне делать автоматически); однако, я не понимаю новый синтаксис #selector()
.Понимание Swift 2.2 Синтаксис селектора - #selector()
В качестве примера:
timer = NSTimer.scheduledTimerWithTimeInterval(1.0, target: self,
selector: #selector(MyVC.timerCalled(_:)), //new selector syntax!
userInfo: nil, repeats: true)
Это селектор #selector(MyVC.timerCalled(_:))
Что делает _:
означает? Можете ли вы добавить в этот селектор другие переменные? Скажем, #MyVC.timerCalled(_:whateverVar)
.
Общая информация о том, что отличается в этом синтаксисе, в отличие от строковой реализации из более ранних версий Swift, очень ценится.
Думаю, я объясню это красиво здесь: http://stackoverflow.com/questions/35658334/how-do-i-resolve-ambiguous-use-of-compile-error-with-swift-selector-syntax/35658335# 35658335 – matt
Ответ @ matt отвечает более подробно на синтаксис, включая полезное обсуждение работы с перегруженными методами. – Stuart