使用标准的add record代码,当设置FirstName和组织之外的属性时,我得到一个非常奇怪的错误(前两行有效):
ABRecordSetValue(person, kABPersonFirstNameProperty, location.title , nil);
ABRecordSetValue(person, kABPersonOrganizationProperty, location.title , nil);
ABRecordSetValue(person, kABPersonPhoneProperty, [location telephone], nil);
ABRecordSetValue(person, kABPersonAddressStreetKey, [location addressLine1], nil);
ABRecordSetValue(person, kABPersonAddressCityKey, [location addressTownCity], nil);
ABRecordSetValue(person, kABPersonAddressZIPKey, [location addressPostcode], nil);
ABRecordSetValue(person, kABPersonAddressStateKey, [location addressCounty], nil);仅供参考,这不是location.title和location addressLine1之间的区别,因为我曾尝试将kABPersonAddressStreetKey设置为location.title,但也遇到了同样的问题
即使使用这段代码,我也会得到一个EXC_BAD_ACCESS
ABAddressBookRef addressBook = ABAddressBookCreate();
ABRecordRef person = ABPersonCreate();
ABRecordSetValue(person, kABPersonFirstNameProperty, location.title , nil);
ABRecordSetValue(person, kABPersonPhoneProperty, @"0208 1567890", nil);
ABAddressBookAddRecord(addressBook, person, nil);
ABAddressBookSave(addressBook, nil因为电话线,我肯定做了什么傻事!?
发布于 2010-02-10 19:58:08
啊,这似乎是因为电话和地址字段是多值的,我还没有意识到这一点
可以找到更多详细信息
http://www.modelmetrics.com/tomgersic/iphone-programming-adding-a-contact-to-the-iphone-address-book/
发布于 2010-02-07 09:44:36
检查Finding EXC_BAD_ACCESS bugs in a Cocoa project中给出的提示。
在这种情况下,Debugging Applications中解释的NSZombieEnabled功能也很有用
发布于 2010-02-07 09:36:09
您是否尝试过使用调试器对特定代码行进行调试,以打印出位置变量的值?
或者至少将该变量的值记录到NSLog()中。
编辑:
在这种情况下,我猜位置变量不会响应选择器方法。
试着“踏入”第3行,看看会发生什么?
https://stackoverflow.com/questions/2214834
复制相似问题