Właśnie rozpocząłem nowy projekt z SDK Xcode 4.2.1 i iOS5. Projekt jest skonfigurowany z ARC. Próbuję ustawić AppDelegate być delegatem na UITabBarController wykonując [tabBarController setDelegate:self];
jeśli to zrobić pojawia się komunikat ostrzegawczy, mówiąc:Cocoa-Touch - Delegacja zamieszania
warning: Semantic Issue: Sending 'AppDelegate *const __strong' to parameter of incompatible type 'id<UITabBarControllerDelegate>'
Alright tyle sprawiedliwy, mogę ustawić AppDelegate aby odpowiadały UITabBarControllerDelegate wykonując
@interface AppDelegate : UIResponder <UIApplicationDelegate, UITabBarControllerDelegate>
Dobrze, ostrzeżenie zniknie.
Teraz otrzymuję kolejny błąd. W kontrolerze widoku Chcę się trzymać z AppDelegate więc zrobić to: AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
ale to uczyni ostrzeżenie mówiąc:
warning: Semantic Issue: Initializing 'AppDelegate *__strong' with an expression of incompatible type 'id<UIApplicationDelegate>'
Ale jeśli usunę że moja AppDelegate zgodny z protokołem UITabControllerDelegate mój drugi znika ostrzegawcze .
Bardzo dziwne zachowanie, co daje ekspertom od kakao?
Oczywiście! Dzięki ... –
Cześć @Aadhira, Rozwiązałem mój błąd, ale nie jestem pewien, czy rozumiem, dlaczego to rozwiązanie działa. Czy mógłbyś mi wytłumaczyć umysł? Dziękuję Ci! – narner
http://stackoverflow.com/questions/14977284/in-objective-c-why-is-casting-eded-przy- -przypisaniu-do -zmiennej-wysokiej-jest Proszę odnieść się do powyższego linku - @narner – Arundev