私のアプリユーザーのサブセットがクラッシュを報告しています。私がクラッシュログの1つを象徴するとき、私は違反しているコードが読み込まれたラベルであることを発見しました。ここでアドレス帳のクラッシュが論理的でない
はクラッシュログから出力された:
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x00000000
Crashed Thread: 0
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 CoreFoundation 0x33e5004e 0x33e4d000 + 12366
1 CoreFoundation 0x33e58cfc 0x33e4d000 + 48380
2 Mail my meeting 0x00002a9c -[Mail_my_meetingAppDelegate initPeople] Mail_my_meetingAppDelegate.m:136)
3 Mail my meeting 0x0000287a -[Mail_my_meetingAppDelegate application:didFinishLaunchingWithOptions:] (Mail_my_meetingAppDelegate.m:74)
そしてここでは、コードで、ライン136は、最後の行であることを:どのようにこの最後の
NSString* finalName=[NSString stringWithFormat:@"%@%@%@",firstName,middleName,lastName];
NSString *phoneNumber = nil;
ABMultiValueRef phoneNumbers1 = ABRecordCopyValue(person,kABPersonPhoneProperty);
if (ABMultiValueGetCount(phoneNumbers1) > 0) {
CFIndex j;
for (j=0; j < ABMultiValueGetCount(phoneNumbers1); j++) {
CFStringRef label = ABMultiValueCopyLabelAtIndex(phoneNumbers1, j);
私は理解できません私はそれがカウントよりも小さいことを検証し、ゼロから始まるので、ラインがクラッシュする可能性があります。
これは私を少し狂ってしまうので、どんなアイデアも大歓迎です!
アドレス帳のリファレンスは既に公開していますか?はいの場合は、http://stackoverflow.com/questions/8630738/cannot-read-kabpersonphonepropertyをご覧ください。少し前に同様の問題がありました。 – Saphrosit