2011-12-07 7 views
1

私はアドレス帳からユーザー情報の記録を取得するために以下を行っています。アドレス帳に奇妙なios5エラーがあります

- (ABRecordRef)findRecordNSString *)phoneNumber 
{ 
if (phoneNumber == nil) 
return nil; 
ABAddressBookRef addressBook = ABAddressBookCreate(); 

CFArrayRef all = ABAddressBookCopyArrayOfAllPeople(addressBook); 

CFIndex n = ABAddressBookGetPersonCount(addressBook); 

ABRecordRef record; 

//NSLog(@"The Record : %d", record); 

int count = 0; 

for(int i = 0 ; i < n ; i++) 
{ 
ABRecordRef ref = CFArrayGetValueAtIndex(all, i); 

ABMultiValueRef phones = ABRecordCopyValue(ref, kABPersonPhoneProperty); 
for(CFIndex j = 0; j < ABMultiValueGetCount(phones); j++) 
{ 

CFStringRef phoneNumberRef = ABMultiValueCopyValueAtIndex(phones, j); 

NSString *newPhoneNumber = (NSString *)phoneNumberRef; 



if([newPhoneNumber isEqualToStringhoneNumber]) 
{ 
//NSLog(@"Phone Ref: %@", phoneNumberRef); 
NSLog(@"Record New: %d", ref); 
record = ref; 

i=(int)n; 
count = 1; 
} 
CFRelease(phoneNumberRef); 
[newPhoneNumber release]; 
} 

} 
[addressBook release]; 
return record; 
} 

が、私は強制的に場合は、エラーがこのエラーの後にまた

Program received signal: “EXC_BAD_ACCESS”. 
Data Formatters temporarily unavailable, will re-try after a 'continue'. (Can't find dlopen function, so it is not possible to load shared libraries.) 

ある 4.私はiOS5をデバイスでのViewControllerを開こうとすると、私はエラーを取得していますが、それは、シミュレータで動作し、IOSホームボタンをダブルタップしてアプリを終了してから手動で終了すると、アプリは黒い画面しか表示しません。これに関するどんな考えですか?

+0

非常に似たエラーが発生しています。これは、4.3で実行すると開発者では動作しますが、5.0ではクラッシュします。 – logixologist

+0

@logixologist私はこの問題を解決しました。もしあなたが助けを必要とする場合は、おそらくあなた自身の質問に答えることができます –

+0

@ RahulVyasをお知らせください。それは未回答として表示されています。 – Marco

答えて

0

はジャストラインに

CFIndex n = ABAddressBookGetPersonCount(addressBook); 

をコメントしてカウントをすべて(配列)のために異なっているので、レコード

CFIndex n = CFArrayGetCount(all); 

の合計数を取得するには、このに置き換えると、変数nのため。

これは他のユーザーにも役立ちます。

関連する問題