У меня есть протоколИспользование #selector директивы в Xcode 7.3
protocol AnnotationTapDelegate: AnyObject {
/* Delegate to identify the tap on Annotation view */
func didTapAnnotation(sender: UITapGestureRecognizer)
}
и класс
class CustomAnnotationView: MKAnnotationView {
func setTapDelegate(delegate: AnnotationTapDelegate!) {
let tapGesture = UITapGestureRecognizer(target: delegate, action: #selector(AnnotationTapDelegate.didTapAnnotation(_:))) <== Error
self.addGestureRecognizer(tapGesture)
}
}
, который дает мне компилировать ошибку говоря «Аргумент„#selector“относится к способу, который не отображается в Objective-C "и дает предложение" Добавить "@ obj-c ', чтобы разоблачить это Objective-C". После добавления '@ obj-c', я получаю ту же ошибку и снова добавляется '@ obj-c'. Проблема не решена.
Я работаю в Xcode 7.3.1.
Раньше я был
let tapGesture = UITapGestureRecognizer(target: delegate, action: "didTapAnnotation:")
, который работает отлично. После обновления моего Xcode до 7.3.1 я столкнулся с этой проблемой.
Как установить функцию протокола в качестве селектора?
Спасибо! Оно работает. – iOS
Ваш прием :) –
Фактически '@ obj-c' был добавлен в func. Добавление его в протокол работает. – iOS