Swift – Как вызвать Selector () для метода с аргументами?

Я изучаю Swift и должен называть мой метод нажатием, вот код:

var gestureRecognizer = UITapGestureRecognizer() myView.addGestureRecognizer(gestureRecognizer) gestureRecognizer.addTarget(self, action: Selector(dismiss(nil))) 

Это возвращает ошибку. Could not find an overload for init that accepts the supplied arguments

Я также пробовал, как Selector("dismiss:nil") и Selector("dismiss(nil)") не повезло ..

Здесь метод, который я вызываю:

 func dismiss(completion: (() -> Void)!) { self.dismissViewControllerAnimated(true, completion: completion) } 

Просто используйте имя метода в виде строки:

 gestureRecognizer.addTarget(self, action: "dismiss:") 

Изменить: в Swift 3.0 вам нужно будет использовать следующий синтаксис:

 gestureRecognizer.addTarget(self, action: #selector(dismiss(_:))) 

Вы не передаете аргументы в селекторах. Вы только представляете, что есть один с двоеточием. Кроме того, вам не нужно использовать тип Selector вообще. Если вы передадите строковый литерал, он преобразуется в Селектор для вас.

 gestureRecognizer.addTarget(self, action:"dismiss:") 
  • Как преобразовать «SEL» и «id» в NSString?
  • _cmd в языке Swift
  • Параметр Swift по умолчанию и синтаксис Selector
  • Использование OCMockito, как можно проверить любой селектор, передан методу
  • Отправка сообщения объекту с помощью селектора и NSSelectorFromString
  • Objective C >> Есть ли способ проверить возвращаемое значение Selector?
  • Есть ли способ распечатать действие SEL?
  • Как остановить выполнение селектора?
  • как программно установить действие для barButtonItem в swift 3?
  • Отправка сообщения объектуForKey в экземпляр NSMutableArray, и он работает! Странный?
  • неоднозначное использование данных селектора данных (с помощью: completeHandler :)
  • Interesting Posts

    Анимация UIView определяет центр во время анимации

    Сбой: неправильное использование API-интерфейса XPC: переназначение соединения

    Как освободить память от UIViewController после всплывающей навигации

    Предупреждение о назначении id <UITextFieldDelegate>, когда я согласен с протоколом

    Quickblox: пытается обновить пользователя и установить blobID в ноль. Не обновляется ..?

    Быстрое обновление UITableView с новыми данными

    AVAudioPlayer полностью удаляется из приложения

    Как добавить кнопку «Назад» в панель навигации через раскадровку?

    После обновления Xcode до IOS 9, приложения stacks на заставке и начальном диспетчере просмотра не загружаются

    Передача параметров веб-службе JSON в Objective C

    «SceneKit: ошибка, отсутствующий буфер » при попытке передать форму в металлический шейдер

    Вызов popToRootViewControllerAnimated после отклоненияModalViewControllerAnimated

    Преобразование NSString в специфичный для локали NSNumber

    dispatch_async () из Grand Central Dispatch и std :: async из C ++ 11

    Невозможно задать заголовок авторизации URLRequest

    Давайте будем гением компьютера.