最初のビューがロケーション コントローラー呼び出し-(void)locationFound
をそのデリゲート[UIApplication sharedApplication].delegate
(AppDelegate) にロードするとすぐに、必要なメソッド locationFound を 1 つだけ要求する対応するプロトコルがあります。
AppDelegate ヘッダーで次のように宣言されたプロトコルの遵守があります。
@interface ProgramAppDelegate : UIResponder <UIApplicationDelegate, LocationFoundProtocol>
すべて正常に動作します - - ロケーション コントローラーでデリゲートを割り当てるときに警告が表示されることを除いて - 次のように:
self.positioningBrain.positioningNetworkingDelegate = [UIApplication sharedApplication].delegate;
それは私に言います:
Assigning to 'id<LocationFoundProtocol>' from incompatible type 'id<UIApplicationDelegate>'
ヘッダーで宣言されているにもかかわらず、AppDelegate が指定したプロトコルに実際に準拠していることを認識していないようです。
XCode がこの不一致を登録する理由はありますか? とにかくプロトコルはすべてセマンティクスでなければならないので、コードが機能することにあまり驚かないのですが、それを行うためのより良い方法があれば知りたいです。