首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我需要添加<UIAlertViewDelegate>协议吗?

我需要添加<UIAlertViewDelegate>协议吗?
EN

Stack Overflow用户
提问于 2010-04-23 15:18:18
回答 4查看 1K关注 0票数 2

我添加了一个alertView来向用户显示一条警告消息(见下文)

代码语言:javascript
复制
-(void)connectionAlert {
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"UIAlertView" 
             message:@"<Alert message>"
               delegate:self 
            cancelButtonTitle:@"OK" otherButtonTitles: nil];
    [alert show];
    [alert release];
}

然后,我使用viewController调用[self connectionAlert]; everything,但我不确定是否应该将<UIAlertViewDelegate>协议添加到viewController接口中。

目前,我有而不是添加了协议,一切似乎都在工作,这是因为我是通过self调用UIAlertView的吗?我真的应该加入协议吗?

非常感谢

加里

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-04-23 15:25:03

我从来没有亲自添加过UIAlertViewDelegate协议,所以我不明白你为什么要这么做。

只有当您希望访问以下方法时才需要该协议:

响应动作的

代码语言:javascript
复制
– alertView:clickedButtonAtIndex:

自定义行为

代码语言:javascript
复制
– willPresentAlertView:
– didPresentAlertView:
– alertView:willDismissWithButtonIndex:
– alertView:didDismissWithButtonIndex:

取消

代码语言:javascript
复制
– alertViewCancel:

如果您不想听这些通知,则不需要协议。

票数 3
EN

Stack Overflow用户

发布于 2013-07-15 08:52:53

1.如果您希望在您的UIalertView文件中使用任何.m委托方法,那么应该将UIAlertViewDelegate添加到您的接口中。2.由于您没有在接口文件中添加UIAlertViewDelegate,所以我认为您没有使用过任何alertView代理方法。在这种情况下,不需要将委托设置为self。如果不想使用任何委托方法,则委托可以为零。

代码语言:javascript
复制
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"UIAlertView" 
         message:@"<Alert message>"
           delegate:nil 
        cancelButtonTitle:@"OK" otherButtonTitles: nil];
票数 1
EN

Stack Overflow用户

发布于 2013-07-15 09:37:49

是的,这是有效的,是的,你应该添加协议。

因为,这就是目标C的工作原理。您可以向任何对象发送任何消息,当然,您发送消息的对象可能无法理解它。

事实上,这就是您应该添加协议的原因。你告诉编译器你计划实现代码--如果你幸运的话--它应该告诉你如果你不小心错过了什么。与运行时相比,更好的方法是在编译时找出是否漏掉了一个方法。

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

https://stackoverflow.com/questions/2699741

复制
相关文章

相似问题

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