Xcode 4.2.1およびiOS5 SDKを実行している新しいプロジェクトを開始しました。プロジェクトにはARCが設定されています。十分Cocoa-Touch - 代議員の混乱
warning: Semantic Issue: Sending 'AppDelegate *const __strong' to parameter of incompatible type 'id<UITabBarControllerDelegate>'
さてさて、公正、私がやっによってUITabBarControllerDelegateに適合するために私AppDelegateを設定します。私は私が言って警告メッセージが表示されますことを行う場合[tabBarController setDelegate:self];
を行うことにより、UITabBarControllerの委譲するAppDelegateを設定しようとしています
@interface AppDelegate : UIResponder <UIApplicationDelegate, UITabBarControllerDelegate>
偉大な警告が消えます。
もう一度エラーが発生します。ビューコントローラでは、私はので、私はこれを行うAppDelegateのホールドを取得したい:AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
をが、これは言って警告をレンダリングします:
warning: Semantic Issue: Initializing 'AppDelegate *__strong' with an expression of incompatible type 'id<UIApplicationDelegate>'
をしかし、私は私のAppDelegateが私の第二の警告が消えUITabControllerDelegateプロトコルに準拠していることを削除する場合。
非常に奇妙な挙動は、ココアの専門家に何を与えるのですか?
もちろん!ありがとう... –
こんにちは@Aadhira、これは私のエラーを解決しましたが、なぜソリューションが動作するのか分かりません。あなたは誰か私に説明してもらえますか?ありがとうございました! – narner
http://stackoverflow.com/questions/14977284/in-objective-c-why-is-casting-needed-when-assigning-to-a-variable-whose-type-is 上記のリンクを参照してください - @narner – Arundev