Я полагаю, вы храните свои контакты, используя основные данные. Возможно, у вас есть сущность «Персона» с атрибутами: имя, фамилия, адрес и т. Д.
Вы должны создать подкласс NSManagedObject специально для сущности "Person". В этом классе вы добавляете метод, который возвращает только первую букву фамилии. Если у вас есть NSFetchedResultsController, вы можете применить путь к разделам. Там вы просто пишете имя именно того метода, который возвращает первую букву. Затем табличное представление должно быть разделено по первой букве фамилии, как в контактах.
Теперь вы должны реализовать метод
- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView
Вы возвращаете массив, который содержит все заголовки индекса, которые появятся справа. Допустим, если ваши контакты - «Стив Джобс» и «Джони Айв», то будет два раздела и два заглавных слова «I» и «J». Вам не нужно помещать в массив все буквы всего алфавита, только те, которые вам действительно нужны.