Реализация действия респондента в Swift
У меня возникают трудности при реализации действия для NSMenuItem в Swift. Обычно вы реализуете подобное действие в Objective-C:
- (void) asdf:(id)sender
Это работает отлично, после настройки действия в первом респонденте, например, так:
Однако после переписывания моего контроллера представления в Swift следующий новый метод, по-видимому, не вызывается:
func asdf(sender: AnyObject?)
Кажется, он не работает, хотя обе версии: Obj-C и Swift - для одного и того же подкласса контроллера представления.
1 ответ
В Swift 3.0 вы определяете это как:
func asdf(_ sender: Any)
Зачем?
Если вы используете _
вы можете удалить имя параметра при вызове функции, так что теперь вы можете вызывать его следующим образом:
object.asdf(object)
Вместо:
object.asdf(sender: object)
Более того, с Swift вы бы использовали Any
вместо AnyObject
в данном контексте. Вы можете найти больше различий между ними здесь.