Я только что начал новый проект с Xcode 4.2.1 и iOS5 SDK. Проект настроен с помощью ARC. Я пытаюсь установить AppDelegate в качестве делегата для UITabBarController, выполнив [tabBarController setDelegate:self];
, если я сделаю это, я получаю предупреждающее сообщение с сообщением:
warning: Semantic Issue: Sending 'AppDelegate *const __strong' to parameter of incompatible type 'id<UITabBarControllerDelegate>'
Хорошо справедливо, я установил свой AppDelegate для соответствия UITabBarControllerDelegate, выполнив
@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, мое второе предупреждение исчезает.
Очень странное поведение, что дает экспертам Cocoa?