首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么ABPeoplePickerView会在双击时崩溃?

为什么ABPeoplePickerView会在双击时崩溃?
EN

Stack Overflow用户
提问于 2014-05-31 01:51:27
回答 1查看 107关注 0票数 0

在设置了它的nameDoubleAction和目标之后,当您双击一个名称时,ABPeoplePickerView的行为就像预期的那样。还有一个属性列-您可以在设计时在属性检查器中添加属性,如电子邮件和电话。它工作得相当好,甚至对于多值属性也是如此,比如一个人的多个电话号码。该外观表明,即使您碰巧在属性列中单击,双击也应该起作用。

然而,我发现在我的真实应用程序中,如果你双击属性栏,应用程序就会挂起。

代码语言:javascript
复制
// action called by double clicking on people picker or by OK button
- (IBAction)acnPickerDoubleClick:(id)sender {

执行挂起于上一行,调试器报告EX_BAD_ACCESS,发送者为0x0。

我用最少的代码构建了四个测试应用程序。2和4工作正常,1和3崩溃如上所述。据我所知,3和4是相同的,都是在几分钟内创建的;代码只是从一个复制到另一个。然而,第一个崩溃了,第二个是正常的。唯一的区别可能是我在Xib中创建内容、添加AddressBook框架或编写#imports的顺序。

另一个荒谬之处是,我只需要导入AddressBook/AddressBook.h,编译器就可以接受这一行:

代码语言:javascript
复制
@property (strong) IBOutlet ABPeoplePickerView *picker;

似乎也不需要导入AddressBook/ABPeoplePickerView.h,但如果不添加后者,我的真实应用程序将无法编译。

EN

回答 1

Stack Overflow用户

发布于 2014-10-14 08:33:00

我遇到了同样的问题,并通过将我的方法签名更改为:

代码语言:javascript
复制
- (IBAction)acnPickerDoubleClick:(id __unsafe_unretained)sender {

它似乎起作用了。在调用操作时,选取器视图层次结构中的实际发送者不能停留足够长的时间。我之所以使用__unsafe_unretained,是因为我的目标是10.6+,但您也许可以在10.7+项目中使用__weak

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

https://stackoverflow.com/questions/23960635

复制
相关文章

相似问题

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