Cocoa-Touch – Delegieren Verwirrung

Ich habe gerade angefangen, ein neues Projekt unter Xcode 4.2.1 und iOS5 SDK. Das Projekt-setup mit ARC. Ich bin versucht, in der AppDelegate werden die Delegierten für das UITabBarController-by-doing - [tabBarController setDelegate:self]; wenn ich das Tue, bekomme ich eine Warnmeldung, die sagen:

warning: Semantic Issue: Sending 'AppDelegate *const __strong' to parameter of incompatible type 'id<UITabBarControllerDelegate>'

Okay, fair genug, ich meine AppDelegate zu entsprechen, die UITabBarControllerDelegate by doing

@interface AppDelegate : UIResponder <UIApplicationDelegate, UITabBarControllerDelegate>

Toll, die Warnung geht Weg.

Bekomme ich jetzt eine andere Fehlermeldung. In einem view controller will ich endlich ein halten der AppDelegate so mache ich das: AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate]; aber das Rendern wird eine Warnung sagen:

warning: Semantic Issue: Initializing 'AppDelegate *__strong' with an expression of incompatible type 'id<UIApplicationDelegate>'

Aber wenn ich zu entfernen, dass meine AppDelegate entspricht der UITabControllerDelegate Protokoll meine zweite Warnung verschwindet.

Sehr seltsames Verhalten, was gibt Kakao-Experten?

InformationsquelleAutor Peter Warbo | 2012-01-11
Schreibe einen Kommentar