Frage

Ich bin mir nicht sicher, ob ich das richtig bin Phrasierung, aber im Grunde tue ich dies in meinem Haupt-AppDelegate:

Anwendung * app = [[Anwendung alloc] initWithApplication: fullPath]

Die Application-Klasse hat eine initWithApplication Methode, die auf dem Weg von einer App nimmt und setzt dann die Eigenschaften für appPath, Namen usw. Dann füge ich das neue „App“ Objekt in die Anwendungen NSMutableArray:

if (app) [applications addObject: app];

Der Content-Arrays NSArrayController wird auf die Anwendungen NSMutableArray, gebunden und dann die verschiedenen Tasten (appPath, Namen, usw.) sind in den NSArrayController gesetzt. Ich habe dann eine Tabellenansicht mit verschiedenen Spalten zu den verschiedenen Eigenschaften gebunden, z.B. eine Spalte für den Namen, eine Spalte aus dem Weg, etc.

Ich habe dann eine Start-Taste, die die App startet, die in der Tabellenansicht ausgewählt ist. Dazu verwende ich diesen Code ein:

Application *app = [applications objectAtIndex:[tableView selectedRow]];

Dann nutzen „app.appPath“ als Referenz ich nur auf den Pfad des aktuell ausgewählten Elements. Dies funktioniert gut. Das Problem kommt, wenn die Tabellenansicht Inhalte gefiltert werden, eine filterPredicate verwenden. Im Grunde ist es filtert alle Anwendungen in der Tabellenansicht aus und läßt nur die, die mit einem Namen, der die Phrase in das Suchfeld eingegeben enthält.

Die obige Methode funktioniert nicht, weil sie den Index des Elements in der Tabellenansicht wird, und da alle Einzelteile nicht in der Tabellenansicht sind, wird die Zählung durcheinander. Zum Beispiel sagen, ich habe eine App MyApp.app genannt, die auf Positions Index 25 der Anwendungen Array ist.

Der obige Code funktioniert gut, weil die Tableview und die Anwendungen Array die gleiche Anzahl von Objekten haben. Ausfiltern jedoch den Inhalt der Tabellenansicht eine Differenz in der Anzahl der Objekte erstellt, und deshalb bringt es die falsche Anwendung.

Ich hoffe, meine Erklärung nicht zu verwirrend ist, aber es ist schwer zu erklären. Jede Art und Weise um dieses?

Danke

War es hilfreich?

Lösung

war Lösung ziemlich einfach für jeden, der wissen will:

[[Arraycontroller Auswahl] ValueForKey: @ "appPath"]

HTH

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top