我試圖實施該解決方案來處理與協議Protocol-Oriented Segue Identifiers in Swift多個SEGUE標識符,但是我得到這個錯誤:類型的ViewController不符合協議
type 'ViewController', doesn't conform to protocol 'SegueHandlerType'
下面是代碼:
protocol SegueHandlerType {
associatedtype SegueIdentifier: RawRepresentable
}
extension SegueHandlerType where Self: UIViewController, SegueIdentifier.RawValue == String {
func performSegueWithIdentifier(segueIdentifier: SegueIdentifier,
sender: AnyObject?) {
performSegueWithIdentifier(segueIdentifier.rawValue, sender: sender)
}
func segueIdentifierForSegue(segue: UIStoryboardSegue) -> SegueIdentifier {
// still have to use guard stuff here, but at least you're
// extracting it this time
guard let identifier = segue.identifier,
segueIdentifier = SegueIdentifier(rawValue: identifier) else {
fatalError("Invalid segue identifier \(segue.identifier).") }
return segueIdentifier
}
}
我複製/粘貼解決方案,但仍然是相同的結果。最奇怪的是,當我從GitHub下載項目時,它工作正常。這迫使我堅持下去。
錯誤:
1.您顯示的代碼不包含「ViewController」。 2.錯誤發生在哪裏? – luk2302
sory,編輯... – i6x86
@ i6x86你得到的錯誤意味着你還沒有實現'SegueHandlerType'所需的方法和變量 – kabiroberai