Cocoa 广泛使用委托来为异步操作提供(除其他外)回调方法。但是,我个人讨厌委托模型以及它如何通过处理非常具体的子操作来污染当前类。UIAlertView
是一个完美的例子。
因此,我想知道是否可以UIAlertViewDelegate
通过块简单地创建一个满足委托协议(例如)要求的匿名委托对象,并在需要委托引用的任何地方传递这个匿名对象。
我想像这样:
id myDelegate = @{
alertView:alertView didDismissWithButtonIndex:index = ^ {
...
}
};
UIAlertView* alertView = [[UIAlertView alloc] initWithTitle:... message:... delegate:myDelegate cancelButtonTitle:... otherButtonTitles:...;
[alertView show];
我听说 Objective-C 有一些很好的动态语言特性,但我不知道如何简单地将方法/选择器添加到对象。这可以以相对简单的方式完成吗?