Ich habe zwei Arrays, nämlich
%Vor%Jetzt kopiere ich das erste Objekt in das zweite Array wie
%Vor%Das ist in Ordnung. Ich weiß nicht, wie ich auf den Wert des ersten Arrays zugreifen kann. Ich habe es versucht,
%Vor%Ich möchte den Namen Wert erhalten, der im ersten Objekt des ersten Arrays ist. Ich habe versucht, die obige Zeile zu verwenden, es zeigt eine Warnung. Bitte hilf mir
Angenommen, Sie haben mit einem Array wie diesem begonnen:
%Vor%Sie könnten ein zweites Array erstellen, das den Wert einer gegebenen Eigenschaft jedes Elements des ersten Arrays wie folgt enthält:
%Vor%Wenn Sie dann das zweite Array protokolliert haben ...
%Vor%... die resultierende Ausgabe wäre
%Vor%BEARBEITEN
Beachten Sie, dass dies unabhängig davon funktioniert, ob die Objekte im ersten Array Instanzen von NSDictionary
sind, wie im obigen Beispiel gezeigt, oder Instanzen einer Klasse oder Klassen, die eine name
-Eigenschaft oder -Instanzvariable (oder eine _name
Instanzvariable, für diese Angelegenheit). Weitere Informationen dazu, wie und warum dies funktioniert, finden Sie in der Dokumentation zum informellen Protokoll NSKeyValueCoding
:
Aktualisierte Antwort:
Auch hier sollten Sie die Dinge in leicht zu analysierende Codezeilen aufteilen:
%Vor%Beachten Sie, dass ich hier auch einige Fehler einchecke (d. h. sicherstellen, dass der Name nicht null ist).
Ursprüngliche Antwort:
Sie erhalten eine Warnung, weil der Compiler nicht weiß, welche Art von benutzerdefiniertem Objekt von Ihrem Aufruf von " [first objectAtIndex: i]
" abgerufen wird. Mit anderen Worten, es weiß nicht, um was für ein Objekt es sich handelt, " name
" von.
Wirf es in den richtigen Typ und du wirst die Warnung loswerden.
Oder noch besser, teilen Sie diese eine Zeile von mehreren Dingen gleichzeitig in zwei oder drei Zeilen Code auf und machen Sie Ihren Code dabei lesbarer.
Tags und Links iphone ios cocoa cocoa-touch foundation