Реализация действия респондента в 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 в данном контексте. Вы можете найти больше различий между ними здесь.

Другие вопросы по тегам