我是 iPhone 开发的新手,有一个问题希望有人能帮助我。
我有一个程序员为我开发一个 iPhone 应用程序,当我在模拟器中运行该应用程序时,它运行良好。但是当我尝试在我的实际 iPhone 上运行它时,我得到一个 EXC_BAD_ACCESS 错误并且应用程序锁定了。
查看调试器,它在我的 MainController 中引用以下代码作为问题:
-(void)loadAddressBook{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
addressBookLoaded=1;
[AddressbookRecord readAllContactTable:[self getDBPath]];
ABAddressBookRef addressBook = ABAddressBookCreate();
for(NSUInteger i=1;i<=ABAddressBookGetPersonCount(addressBook);i++) {
ABRecordRef myPerson =ABAddressBookGetPersonWithRecordID (addressBook,(ABRecordID)(i));
NSString *name = (NSString*)ABRecordCopyCompositeName(myPerson);
//save in database
AddressbookRecord *addObj = [[AddressbookRecord alloc] initWithPrimaryKey:0];
addObj.ClientName=name;
[addObj addNewContactEntry];
}
addressBookLoaded=2;
[pool release];
}
更具体地说,它指出这一特定行是问题所在:
NSString *name =(NSString*)ABRecordCopyCompositeName(myPerson);
我的程序员似乎无法弄清楚问题出在哪里,因为他无法最终复制它。有谁知道什么会导致这个问题???
谢谢!