首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSObject扩展UIAlertViewDelegate崩溃?

NSObject扩展UIAlertViewDelegate崩溃?
EN

Stack Overflow用户
提问于 2012-06-18 16:34:06
回答 2查看 720关注 0票数 2

我有一个帮助类,我想要显示一个UIAlertView,然后执行一些web服务操作。我想这样做,这样我就可以在其他地方重复使用警报视图。

我是这样宣布的:

代码语言:javascript
复制
@interface FBLinkHelper : NSObject <UIAlertViewDelegate>

我还有一个显示警报视图的方法:

代码语言:javascript
复制
- (void) showLinkDialog {
    UIAlertView *av = [[UIAlertView alloc] initWithTitle:@"Link account with Facebook?" message:@"Linking your account with Facebook extends your user experience. Link account?" delegate:self cancelButtonTitle:@"No" otherButtonTitles:@"Yes", nil];
    [av show];
}

下面是我展示对话框的方式:

代码语言:javascript
复制
    FBLinkHelper *fbLinkHelper = [[FBLinkHelper alloc] init];
    [fbLinkHelper showLinkDialog];

我觉得一切都很正常。它显示了警报视图对话框,但是当我单击一个按钮(无论是哪一个)时,我的应用程序就会崩溃,在控制台中没有什么可说的。我注意到只有当UIAlertViewDelegate方法(如didDismissWithButtonIndex )就位时,它才会崩溃。为什么会发生这种情况?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-18 16:38:15

-最新情况-

FBLinker实例不是其调用方的强属性,因此委托回调转到了一个悬空指针。关于FBLinker strong的OP报告解决了问题。

让类从UIView而不是NSObject扩展的最初建议没有任何效果,这里只为历史目的引用。

票数 2
EN

Stack Overflow用户

发布于 2012-06-25 16:43:36

在我工作的应用程序中,我也有过同样的情况。如果委托对象不是强属性(或者在5.0之前的iOS中保留)属性,那么它可能会在显示UIAlertView之后立即被解除分配。

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

https://stackoverflow.com/questions/11087179

复制
相关文章

相似问题

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