IOS: how to find the insertion position in a sorted NSMutableArray

I have an NSMutableArray of sorted objects that display in a UITableView.

I want to insert a new object into an array and update the table view - this requires the index of the newly inserted object.

I can not find the system message to tell me the correct insertion index into the array, which I need to update the table view.

The best I can find is:

  • add new object
  • kind
  • using an old copy of the array, find the location of the new object (which requires a search)

or

  • write my own insertion position search

Surely there should be a message to find the insertion position in a sorted array? Or am I missing something obvious here?

+8
sorting ios insertion-sort objective-c uitableview
source share
1 answer

You can use the indexOfObject:inSortedRange:options:usingComparator: for the entire array. This method performs a binary search in the range that you pass, and gives you an insertion point when you use the NSBinarySearchingInsertionIndex option:

 NSUInteger insPoint = [myArray indexOfObject:toInsert inSortedRange:NSMakeRange(0, [myArray count]) options:NSBinarySearchingInsertionIndex usingComparator:^(id lhs, id rhs) { return // return the result of comparing two objects } ]; 
+24
source share

All Articles