iOS: So finden Sie die Einfügeposition im sortierten NSMutableArray

8

Ich habe ein NSMutableArray von sortierten Objekten, die in einer UITableView angezeigt werden.

Ich möchte ein neues Objekt in das Array einfügen und die Tabellenansicht aktualisieren - was den Index des neu eingefügten Objekts erfordert.

Ich kann keine Systemmeldung finden, um mir den korrekten Einfüge-Index in das Array mitzuteilen, den ich für die Aktualisierung der Tabellenansicht benötige.

Das Beste, was ich finden kann, ist:

  • neues Objekt hinzufügen
  • sortieren
  • Verwenden Sie die alte Kopie des Arrays, um den Speicherort des neuen Objekts zu finden (für das eine Suche erforderlich ist)

oder

  • schreibe meine eigene Suche nach der Einfügeposition

Sicher muss eine Nachricht vorhanden sein, um die Einfügeposition in einem sortierten Array zu finden? Oder fehlt mir hier etwas Offensichtliches?

    
Matt 29.10.2013, 00:02
quelle

1 Antwort

24

Sie können die Methode indexOfObject:inSortedRange:options:usingComparator: für das gesamte Array verwenden. Diese Methode führt eine binäre Suche in einem übergebenen Bereich durch und gibt Ihnen den Einfügepunkt, wenn Sie die Option NSBinarySearchingInsertionIndex verwenden:

%Vor%     
dasblinkenlight 29.10.2013, 00:07
quelle