Iphone UIAddressBook代码将错误放在设备上

Iphone UIAddressBook代码将错误放在设备上,iphone,addressbook,Iphone,Addressbook,我在模拟器上测试下面的代码,它工作正常,但当我选择设备并运行时,它会出现异常 ABAddressBookRef addressBook = ABAddressBookCreate(); CFArrayRef allPeople = ABAddressBookCopyArrayOfAllPeople(addressBook); CFIndex nPeople = ABAddressBookGetPersonCount(addressBook); tempPeoples= [NSMutabl

我在模拟器上测试下面的代码,它工作正常,但当我选择设备并运行时,它会出现异常

ABAddressBookRef addressBook = ABAddressBookCreate();

CFArrayRef allPeople = ABAddressBookCopyArrayOfAllPeople(addressBook);  
CFIndex nPeople = ABAddressBookGetPersonCount(addressBook);

tempPeoples= [NSMutableArray arrayWithCapacity:0];


for(int i=0;i<nPeople;i++){

    ABRecordRef i1=CFArrayGetValueAtIndex(allPeople, i);

    NSString* name = (NSString *)ABRecordCopyValue(i1,kABPersonFirstNameProperty);

    [tempPeoples addObject:name];

//  [peoples addObject:i1];

}// end of
ABAddressBookRef addressBook=ABAddressBookCreate();
CFArrayRef allPeople=abAddressBookCopyArrayFallPeople(addressBook);
CFIndex nppeople=ABAddressBookGetPersonCount(地址簿);
tempPeoples=[NSMutableArray阵列,容量:0];

对于(int i=0;i您正在向数组添加一个
nil
(如消息所示)

通过一个演绎过程,我看到您正在向此行的数组添加对象

[对象:名称]

因此,对于这段代码,很可能就是发生错误的地方

可能不是所有的联系人都有名字,这可能是商业联系人而不是普通人的情况

您可以在代码中放置一个断点,并通过调试器运行它,以查看是什么条件导致了这种情况