20.5 Änderungen observierbar machen

Wir haben bei Cocoa so viel Zauberei erlebt, das man glauben könnte, man bräuchte einfach nur den Wert der Ivar count von UpOrDown zu setzen, und schon würde die Änderung von Display aufgegriffen.

-(void) step: (id) sender {
    //das reicht nicht
    count = [NSNumber numberWithInteger:[sender integerValue]];
}

Wenn Sie eine Variable direkt setzen, müssen Sie die Änderung aber leider anzeigen, indem Sie signalisieren, dass sich der Wert ändern wird, und dann gleich noch einmal, sobald der Wert geändert wurde.

KVO/Counter3/UpOrDown.m

   -(IBAction) step: (id) sender {
▸      [self willChangeValueForKey:@"count"];
        count = [NSNumber numberWithInteger:[sender integerValue]];
▸      [self didChangeValueForKey:@"count"];
   }

Das kann einem ...

Get Cocoa-Programmierung now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.