HOME > > [iOS][Swift]Type ViewController does not conform to protocol delegate ViewControllerDelagateのエラーが出る

[iOS][Swift]Type ViewController does not conform to protocol delegate ViewControllerDelagateのエラーが出る

事象

独自デリゲートを実装している途中で下記のエラーが表示されるようになりました。

type XXXViewController does not conform to protocol delegate XXXViewControllerDelagate...

ios swift doesnt conform error

開発環境はこちらです。

項目
Xcode8.0
Swift3.0

何が原因なのかよくわからないので、ご存知の方連絡お願いします。

回答

自己解決しました。

このエラーは実装した独自のデリゲートメソッドの中の必須メソッドをDelegate先のクラスで実装してない場合に発生します。

なので、実装した必須のデリゲートメソッドを呼び出し先のクラスですべて定義して上げれば解決します。

また、デリゲートメソッドを必須ではなく、オプショナル(任意)にしたい場合にはメソット定義の箇所で@obj optionalをつけて上げればオプショナルなメソッドになるので、それでもエラーが表示されなくなるでしょう。

// 独自デリゲート
@objc protocol XXXViewControllerDelegate{
    // 必須デリゲートメソッド
    func someMethod1()
    // 任意デリゲートメソッド
    @objc optional func someMethod2()
}

参考サイト

http://mirai-stereo.net/2014/11/07/swift-does-not-conform-to-protocol-uitableviewdatasource/

https://tech.recruit-mp.co.jp/mobile/swift-optional-method/