Контактный номер остается нулевым - PullRequest
0 голосов
/ 29 января 2012

У меня есть mutableArray и я поместил в него номер контакта.

Я использую следующий код:

ABMultiValueRef phoneNumbers = (ABMultiValueRef)ABRecordCopyValue(person, kABPersonPhoneProperty);
CFRelease(phoneNumbers);
number = (__bridge NSString*)ABMultiValueCopyValueAtIndex(phoneNumbers, 0);


[thenumbers addObject:number];

Чтобы получить его, я делаю это:

Contacts *num = [thenumbers objectAtIndex:indexPath.row];
NSString *numbers = [NSString stringWithFormat:@"%@", [num number]];
cell.detailTextLabel.text = numbers;

Я устанавливаю точки останова, и он останавливается на правильных строках,Я также пытался

NSLog(@"%@", number);

И он возвращает цифры.И да, у меня есть reloadDate в представлении Willappear.

Ответы [ 2 ]

1 голос
/ 29 января 2012

Вы выпускаете phoneNumbers сразу после копирования в него. Попробуйте переместить его после использования.

Или, что еще лучше, передать владение объекту NSString через ARC

ABMultiValueRef phoneNumbers = (ABMultiValueRef)ABRecordCopyValue(person, kABPersonPhoneProperty);
number = (__bridge_transfer NSString*)ABMultiValueCopyValueAtIndex(phoneNumbers, 0);

И вообще не нужно звонить CFRelease(phoneNumbers).

Что касается ввода чисел в ячейку, вы запутались в своих типах. Вы помещаете NSString в theNumber, но вы вытаскиваете Contacts. А затем отправил ему какое-то сообщение number.

Вы поместили строку в массив, вы можете только извлечь строку или подкласс.

NSString *numbers = [thenumbers objectAtIndex:indexPath.row];
cell.detailTextLabel.text = numbers;
1 голос
/ 29 января 2012

В следующем коде:

ABMultiValueRef phoneNumbers = (ABMultiValueRef)ABRecordCopyValue(person, kABPersonPhoneProperty);
CFRelease(phoneNumbers);
number = (__bridge NSString*)ABMultiValueCopyValueAtIndex(phoneNumbers, 0);

Вы отпускаете phoneNumbers, а затем вы получаете доступ к переменной.Измените его следующим образом.

ABMultiValueRef phoneNumbers = (ABMultiValueRef)ABRecordCopyValue(person, kABPersonPhoneProperty);
number = (__bridge NSString*)ABMultiValueCopyValueAtIndex(phoneNumbers, 0);
CFRelease(phoneNumbers);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...