Ich habe einen Viewcontroller eine Instanz eines UIView zu schaffen und dann zu registrieren, I einen Beobachter mit der Instanz, so dassobserveValueForKeyPath nicht aufgerufen wird
logoAnimation = [[MainLogoAnimation alloc] init];
[logoAnimation addObserver:self forKeyPath:@"patrocinioDidLoad" options:(NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld) context:nil];
dann, in der gleichen Datei, ich habe:
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
NSLog(@"%@ \n %@ \n %@ \n ",keyPath,object,change);
}
Aber, obwohl ich eingecheckt haben und doppelt geprüft, dass logoAnimation.patrocinioDidLoad geändert hat, observeValueForKeyPath nie aufgerufen wird ...
Bin ich etwas fehlt?
Danke für die Hilfe!
Antonio
danke du hast mein Problem gelöst Für mich etwas wie logoAnimation = [[MainLogoAnimation Alloc] init]; hat nicht funktioniert aber self.logoAnimation = [[MainLogoAnimation alloc] init] autorelease]; funktioniert. – ssj
Sie müssen also immer "selbst" in den Vordergrund stellen, wenn Sie die von @synthesize erstellten Setter und Getter verwenden möchten? – gonzobrains
WOW! Nach stundenlangem Testen meines Codes, um herauszufinden, warum observValueForKeyPath nie aufgerufen wurde, fand ich schließlich heraus, dass dies der Grund war. Warum macht Apple es nicht in der Dokumentation fett, dass man durch den Setter gehen muss (und somit die Eigenschaft anstelle des Ivar verwenden muss), damit es funktioniert? – ArtOfWarfare