我添加了一个alertView来向用户显示一条警告消息(见下文)
-(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的吗?我真的应该加入协议吗?
非常感谢
加里
发布于 2010-04-23 15:25:03
我从来没有亲自添加过UIAlertViewDelegate协议,所以我不明白你为什么要这么做。
只有当您希望访问以下方法时才需要该协议:
响应动作的
– alertView:clickedButtonAtIndex:自定义行为
– willPresentAlertView:
– didPresentAlertView:
– alertView:willDismissWithButtonIndex:
– alertView:didDismissWithButtonIndex:取消
– alertViewCancel:如果您不想听这些通知,则不需要协议。
发布于 2013-07-15 08:52:53
1.如果您希望在您的UIalertView文件中使用任何.m委托方法,那么应该将UIAlertViewDelegate添加到您的接口中。2.由于您没有在接口文件中添加UIAlertViewDelegate,所以我认为您没有使用过任何alertView代理方法。在这种情况下,不需要将委托设置为self。如果不想使用任何委托方法,则委托可以为零。
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"UIAlertView"
message:@"<Alert message>"
delegate:nil
cancelButtonTitle:@"OK" otherButtonTitles: nil];发布于 2013-07-15 09:37:49
是的,这是有效的,是的,你应该添加协议。
因为,这就是目标C的工作原理。您可以向任何对象发送任何消息,当然,您发送消息的对象可能无法理解它。
事实上,这就是您应该添加协议的原因。你告诉编译器你计划实现代码--如果你幸运的话--它应该告诉你如果你不小心错过了什么。与运行时相比,更好的方法是在编译时找出是否漏掉了一个方法。
https://stackoverflow.com/questions/2699741
复制相似问题