2016年9月15日木曜日

変なメッセージでた:Assigning to 'AppDelegate *__strong' from incompatible type 'id _Nullable'

iOS10リリースに伴い、Xcode8にしたら、

AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];

って書いたところに以下のWarningが出たよ。

Assigning to 'AppDelegate *__strong' from incompatible type 'id<UIApplicationDelegate> _Nullable'

互換性のないタイプの'id<UIApplicationDelegate> _Nullable'から'AppDelegate *__strong'にアサイン(割り当て)しようとしている
ってことだな。

クラス間で使うグローバル変数みたいなものをAppDelegateクラスに作っといて、それにアクセスするためのおまじないで、iOS9までは問題なかったんだけど。

appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];

どうやら型のチェックを厳密にするようになったためらしく、上記のようにキャストしてやったらWarning消えただよ。めでたしめでたし。

0 件のコメント:

コメントを投稿