Я только что начал новый проект с 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] делегат];
, но это приведет к предупреждению:
warning: Semantic Issue: Initializing 'AppDelegate *__strong' with an expression of incompatible type 'id<UIApplicationDelegate>'
Но если я удалите, что мой AppDelegate соответствует протоколу UITabControllerDelegate, мое второе предупреждение исчезает.
Очень странное поведение, что дают эксперты по Какао?