Pomysł jest prosty. Załóżmy, że masz dużą tablicę, która zawsze powinna być posortowana. Zmiana lub wstawienie nawet jednego elementu oznacza, że musisz uciekać się do tablicy. Sortowanie jest kosztowne.
Metodę -[NSArray sortedArrayHint]
można wywołać na już posortowanej macierzy w celu uzyskania prywatnych danych wewnętrznych, które można wykorzystać do przyspieszenia sortowania tej samej tablicy, zważywszy, że dokonano tylko niewielkiej zmiany.
użycia jest prosty:
- Get i przechowywać wskazówkę z oryginalnego posortowanej tablicy przy użyciu
-[NSArray sortedArrayHint]
.
- Po niewielkiej zmianie; ośrodek z wykorzystaniem
-[NSArray sortedArrayUsingFunction:context:hint:]
z zapisaną wskazówką.
- Po dużej zmianie; skorzystaj z usługi
-[NSArray sortedArrayUsingFunction:context:]
i uzyskaj nową podpowiedź.
Co to jest mała lub duża zmiana to coś, co należy zmierzyć za pomocą instrumentów.
Sam nie korzystam z tego, ponieważ bardziej efektywnie wykorzystałem moje własne kategorie na NSArray
i NSMutabelArray
dla posortowanych wstawek, które używają wyszukiwania binarnego w sortowanej tablicy. Mój kod jest dostępny jako open source tutaj: https://github.com/Jayway/CWFoundation
Twoja odpowiedź była dla mnie bardzo pomocna. –
Na przykład, czy możesz pokazać kod źródłowy? Proszę .. –
Czy używanie "sortedArrayHint" przyspiesza działanie? –