'da birden çok parametreyle Seçici'yi tanıyamıyorbazı optional
işlevlerine sahibim. Hedefim, temsilci işlevi tarafından temsilci işlevi tarafından gerçekleştirilip gerçekleştirilmediğini kontrol etmektir, eğer evet, eğer yürütürse, varsayılan olarak bazı şeyleri yapın.yanıtSToSelector, Swift
Bu amaçla respondsToSelector
kullanıyorum, hiçbir veya bir parametresi olmayan ancak iki parametre için çalışmayan işlevler için iyi çalışıyor.
Herkes yardımcı olabilir mi? Şimdiden teşekkürler. , Benim öz tarafından cevap buldum @Shripada sayesinde
@objc protocol ViewControllerDelegate: NSObjectProtocol {
optional func doSomethingWithoutParams()
optional func doSomethingWithOneParam(controller: ViewController)
optional func doSomethingWithTwoParams(controller: ViewController, secondParam: String)
}
class ViewController: UIViewController {
weak var delegate: ViewControllerDelegate?
@IBAction func onButtonClicked(sender: AnyObject){
if (delegate != nil && delegate!.respondsToSelector(Selector("doSomethingWithoutParams"))) {
// Entered here
}
else{
NSLog("doSomethingWithoutParams is not implemented")
}
if (delegate != nil && delegate!.respondsToSelector(Selector("doSomethingWithOneParam:"))) {
// Entered here
}
else{
NSLog("doSomethingWithOneParam is not implemented")
}
if (delegate != nil && delegate!.respondsToSelector(Selector("doSomethingWithTwoParams::"))) {
NSLog("doSomethingWithTwoParams is implemented")
}
else{
// Entered here
NSLog("doSomethingWithTwoParams is not implemented")
}
}
}
Xcode hangi sürümü size Hangi? Seçici sözdizimi, 7.3 – dpassage
için değiştirildi Bu deseni hızlıca engellemelisiniz. Bunun yerine İsteğe bağlı zincirleme kullanın. – Shripada
XCode 7.2.1 kullanıyorum. – dichen