В настоящее время я извлекаю все контакты из адресной книги и хочу сохранить последнюю дату, когда я встретил конкретный контакт. Поэтому я выборки календаря в то же время выглядит следующим образом:ABRecordCopyValue() SIGSEGV
for (EKEvent* event in events) {
for (EKParticipant* attende in [event attendees]) {
ABRecordRef record = [attende ABRecordWithAddressBook:addressBook];
if([contact.name isEqualToString:[NSString stringWithFormat:@"%@ %@", (__bridge NSString *)ABRecordCopyValue(record, kABPersonFirstNameProperty), (__bridge NSString *)ABRecordCopyValue(record, kABPersonLastNameProperty)]]){
contact.lastMet = [NSString stringWithFormat:@"%@",[formatter stringFromDate:event.endDate]];
}
}
}
К сожалению, сбои кода на «если» -statement линии с сигналом SIGSEGV, журнал аварии указывает на то, что происходит сбой с ABRecordCopyValue(). ..Какие предложения, как исправить эту проблему?
Действительно ли «запись» при получении ошибки? Возвращаемое значение 'ABRecordWithAddressBook' - это' Запись адресной книги для участника, или nil, если запись не найдена. 'Я думаю, операция копирования может завершиться неудачно, если запись равна нулю. – ikuramedia