Вы можете отсортировать массив объектов по алфавиту, используя sortUsingSelector (массив должен иметь тип NSMutableArray, а не просто NSArray) и добавив метод, который возвращает значение NSComparisonSort в вашем классе модели. В этом случае MyObject является классом вашего пользовательского объекта. Сортировка выполняется на основе свойства письма, которое является строкой NSString, но может быть чем-то другим.
// Just before wherever your Data Source is returned in your MyObject Class
[myArray sortUsingSelector:@selector(compareTo:)];
// Method which does the Comparison, also in your MyObject
- (NSComparisonResult)compareTo:(MyObject *)otherObject {
return [self.letter caseInsensitiveCompare:otherObject.letter];
}
Теперь, чтобы поместить один объект в индекс 0, вы можете сделать следующее. Я предполагаю, что вы знаете индекс объекта, который хотите вынуть ...
MyObject *temp = [[myArray objectAtIndex:index] retain];
[myArray removeObject:temp];
[myArray insertObject:temp atIndex:0];
Эта подготовка будет выполнена до вызова методов делегирования табличного представления. Возможно, в вашем представлении Table View или ViewWillLoad / ViewDidLoad
Обновление : Вот как добиться такой же сортировки по алфавиту с помощью SortDescriptor:
// This is setting up the Sort Descriptor for comparing the two objects based on the property 'letter'
NSSortDescriptor *sorter = [[[NSSortDescriptor alloc] initWithKey:@"letter" ascending:YES] autorelease];
NSArray *sortDescriptors = [NSArray arrayWithObject:sorter];
// This is the sorted array returned based on the property 'letter'
NSArray *sorted = [myArray sortedArrayUsingDescriptors:sortDescriptors];