首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为大多数属性添加联系人抛出EXC_BAD_ACCESS异常(ABRecord)

为大多数属性添加联系人抛出EXC_BAD_ACCESS异常(ABRecord)
EN

Stack Overflow用户
提问于 2010-02-07 05:35:22
回答 3查看 1.4K关注 0票数 0

使用标准的add record代码,当设置FirstName和组织之外的属性时,我得到一个非常奇怪的错误(前两行有效):

代码语言:javascript
复制
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

代码语言:javascript
复制
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

因为电话线,我肯定做了什么傻事!?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-02-10 19:58:08

啊,这似乎是因为电话和地址字段是多值的,我还没有意识到这一点

可以找到更多详细信息

http://www.modelmetrics.com/tomgersic/iphone-programming-adding-a-contact-to-the-iphone-address-book/

票数 0
EN

Stack Overflow用户

发布于 2010-02-07 09:44:36

检查Finding EXC_BAD_ACCESS bugs in a Cocoa project中给出的提示。

在这种情况下,Debugging Applications中解释的NSZombieEnabled功能也很有用

票数 1
EN

Stack Overflow用户

发布于 2010-02-07 09:36:09

您是否尝试过使用调试器对特定代码行进行调试,以打印出位置变量的值?

或者至少将该变量的值记录到NSLog()中。

编辑:

在这种情况下,我猜位置变量不会响应选择器方法。

试着“踏入”第3行,看看会发生什么?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2214834

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档