2 Stimmen

Bindung des Wertes von label an die Eigenschaft count eines NSArray

Ich möchte in einem Label die aktuelle Anzahl der Elemente in einem NSArray namens pages anzeigen. Nach anderen Anleitungen habe ich das folgende getan:

  1. Erstellen eines NSArrayControllers in IB (genannt pagesController) und Binden an das NSArray pages
  2. Die Value-Eigenschaft des Labels an den NSArrayController mit Controller Key = arrangedObjects und Model Key Path = @count gebunden

Das Problem ist, dass das Etikett immer "0" anzeigt, wenn das Programm läuft. Um zu überprüfen, ob die Dinge richtig funktionieren, habe ich versucht, eine Meldung zu protokollieren, wenn der Benutzer auf eine andere Schaltfläche klickt (die Schaltfläche fügt im Grunde ein neues Element in das Seiten-Array ein): NSLog(@"count = %d", [self.pagesController valueForKeyPath:@"arrangedObjects.@count"]); in diesem Fall ist die Ausgabe korrekt, d.h. die aktuelle Anzahl der Elemente im Array wird korrekt ausgegeben. Wo mache ich einen Fehler?

0voto

Francis McGrew Punkte 7206

Möglicherweise verwenden Sie KVC nicht richtig. Ihr Array Controller wird nur mit dem pages Eigenschaft neu definiert wird und nicht, wenn dem Array Objekte hinzugefügt werden. Versuchen Sie, Ihren Code mit den entsprechenden Änderungsbenachrichtigungen zu umhüllen:

[self willChangeValueForKey:@"pages"];
[pages addObject:someObject];
[self didChangeValueFOrKey:@"pages"];

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X