添加观察者时是否需要接收NSNotification?
这是事情..
每当我看到一个关于网络相关iphone的例子 - ipad dev时,我看到每次控制器注册自己的通知时,回调方法如下:
-(void)mymethod:(NSNotification *)notification {
//Bla Bla
}
与按钮动作相同..总是喜欢:
- (void)actionmethod:(id)sender {
//Bla Bla
}
我只做了一些测试,无论如何都要调用方法,无论是否有参数。
这真的有必要吗?是什么原因?
谢谢 !!!
没有找到相关结果
已邀请:
3 个回复
肉脓措伪
doc: notificationSelector 选择器,指定接收方发送notificationObserver以通知其通知发布的消息。 notificationSelector指定的方法必须只有一个参数(
的实例)。 [强调我的。] 您必须为选择器提供正确的签名;如果你不这样做,它可能会起作用,但它可能会在你不想要的时候停止工作。 您可能希望获得通知的原因是,您可以使用
字典的形式传递信息,您可以在使用
发布通知时指定。调用方法时可以忽略参数,但参数必须在方法签名中。 至于按钮及其动作,文档说你可以有三个签名之一*: UIKit框架允许三种不同形式的动作选择器:
返回类型相当于
(没有返回值),除了它在头中的方法中的存在允许Interface Builder知道该方法是用作动作,以便您可以连接控件。 想要获得按钮(或其他控件)的原因与通知类似。如果您的界面中有许多按钮,其中一些按钮(例如在表格视图中)连接到同一个动作,您可能需要通过按下按钮的标识区分您所做的确切事情。 *:为了完整起见,我想提一下在Mac上并非如此;在那里,一个动作方法必须具有以下形式:
。
盛梯獭八搽
。为了安全起见,最好提一下这些论点。 这是一个不使用参数导致应用程序崩溃的示例: 一个视图中的多个控制器
冲汉