現在、アドレスブックからすべての連絡先を取得しており、特定の連絡先に最後に連絡した日付を保存したいと考えています。したがって、私は次のように同時にカレンダーを取り出している: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]];
}
}
}
信号SIGSEGVと「IF」-statement線で悲しいコードがクラッシュすると、クラッシュログ)(障害がABRecordCopyValueで起こることを示しています。 ..どのような提案をこの問題を解決するには?
エラーが発生した場合は 'record' nilですか? 'ABRecordWithAddressBook'の戻り値は'参加者のアドレス帳レコードです。もしレコードが見つからなければnilです.'レコードがnilならコピー操作が失敗するかもしれません。 – ikuramedia