Cocoa广泛使用代理来提供(除其他之外)异步操作的回调方法。然而,我个人不喜欢代理模式以及它如何将非常特定的子操作的处理程序污染到当前类中。
因此,我想知道是否可以通过块简单地创建一个符合代理协议要求(例如
我想象中的代码如下:
UIAlertView
是一个完美的例子。因此,我想知道是否可以通过块简单地创建一个符合代理协议要求(例如
UIAlertViewDelegate
)的匿名代理对象,并将此匿名对象传递到期望有代理引用的任何位置。我想象中的代码如下:
id myDelegate = @{
alertView:alertView didDismissWithButtonIndex:index = ^ {
...
}
};
UIAlertView* alertView = [[UIAlertView alloc] initWithTitle:... message:... delegate:myDelegate cancelButtonTitle:... otherButtonTitles:...;
[alertView show];
我听说Objective-C有一些很好的动态语言特性,但我不知道如何简单地向一个对象添加方法/选择器。这可以相对简单地完成吗?
UIAlertViewDegate
的旧问题,但我目前找不到它。 - jscsUIActionSheet
而不是UIAlertView
:将对象附加到UIActionSheet。 - jscs