Прежде всего объяснение: у меня есть обычный tableView с контактами и их номером в нем.Они могут добавить свои контакты там в приложение.Иногда у них есть фамилия, иногда нет.Дело в том, что когда я добавляю кого-то только с именем, фамилии других контактов тоже удаляются.И когда я добавляю кого-то с именем и фамилией, те, у кого есть только имя, получают (ноль), где должна быть фамилия.Я надеюсь, что я понял это (английский не мой родной язык) - я попробовал это с утверждениями if (как вы увидите в коде), но это не сработало.Я также попытался добавить те с firstName в другом массиве.Также не работает, потому что вы не можете (я думаю!) Заполнить tableView более чем одним массивом.
- (BOOL)peoplePickerNavigationController:
(ABPeoplePickerNavigationController *)peoplePicker
shouldContinueAfterSelectingPerson:(ABRecordRef)person {
firstName = (__bridge_transfer NSString *)ABRecordCopyValue(person, kABPersonFirstNameProperty);
lastName = (__bridge_transfer NSString *)ABRecordCopyValue(person, kABPersonLastNameProperty);
ABMultiValueRef phoneNumbers = (ABMultiValueRef)ABRecordCopyValue(person, kABPersonPhoneProperty);
number = (__bridge_transfer NSString*)ABMultiValueCopyValueAtIndex(phoneNumbers, 0);
[thenumbers addObject:number];
if(lastName && ([lastName length] > 0)) {
[menuArray addObject:[[Contacts alloc] initWithFirstName:firstName andLastName:lastName]];
}
else {
[menuArray addObject:[[Contacts alloc] initWithFirstName:firstName]];
}
[self dismissModalViewControllerAnimated:YES];
return NO;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];}
if(lastName && ([lastName length] > 0)) {
Contacts *user = [menuArray objectAtIndex:indexPath.row];
NSString *cellValue = [NSString stringWithFormat:@"%@ %@", [user firstName], [user lastName]];
cell.textLabel.text = cellValue;
}
else {
Contacts *user = [menuArray objectAtIndex:indexPath.row];
NSString *cellValue = [NSString stringWithFormat:@"%@", [user firstName]];
cell.textLabel.text = cellValue;
}
NSString *numbers = [thenumbers objectAtIndex:indexPath.row];
cell.detailTextLabel.text = numbers;
return cell;
}