Как разбить pList по алфавиту на группы, такие как контакты iOS - PullRequest
0 голосов
/ 26 ноября 2011

Я пытался отделить pList, который уже алфавитизирован, в TableView. Например, когда имена переключаются с A на B, я хочу, чтобы формат необычной сгруппированной таблицы отделял A от B.

Есть идеи, как это сделать?

Вот мой код, который я выполняю сортировку.

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:kEMPLOYEE_PLIST];

NSMutableArray *countries = [[NSMutableArray alloc ]initWithContentsOfFile:path];

// Now the array holds NSDictionaries, sort 'em:
NSSortDescriptor *descriptor = [[[NSSortDescriptor alloc] initWithKey:@"FullName" ascending:YES] autorelease];
sortedCountries = [[countries sortedArrayUsingDescriptors:[NSArray arrayWithObject:descriptor]] retain];

1 Ответ

2 голосов
/ 26 ноября 2011

Проверьте этот потенциально связанный вопрос , но в основном вам нужно, чтобы каждая буква (или группа) была разделом.

Сначала вам нужно будет указать свою таблицугруппируется (либо в Интерфейсном Разработчике, либо с помощью метода - (id)initWithFrame:(CGRect)frame style:(UITableViewStyle)style * в UITableView, указывая стиль UITableViewStyleGrouped.

Затем вы захотите реализовать:

UITableViewDataSource's

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView метод

и

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

и, конечно, метод UITableViewDataSource

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath.

В этом последнем методе вы можете посмотреть на indexPath.section, чтобы получить букву алфавита, которую вы хотите вернутьи indexPath.row для возврата N-й записи, которая существует для этой буквы (группы).

Этого достаточно для работы на данный момент?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...