Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我只是在幻想如何让 Block 对象也成为委托,例如 UIAlertView。这有点奇怪,我承认。但是是否可以向 Block 对象添加方法?您可以访问方法中捕获的变量吗?
不。块文字有一个运行时类,它是实现定义的,由编译器决定。您无法控制块对象具有的类;因此,您不能使其成为自定义子类的实例。
使用REKit,您可以在调用委托方法时创建要执行的块。它不限于UIAlertView. 您可以对采用委托模式的所有实例使用 REKit。请参阅 REKit 的“委托本身”示例。
UIAlertView
我的回答是肯定的,但与 UIAlertView 无关。
想象一个类提供一个块作为网络会话完成处理程序。现在你需要继承这个类,并且(除其他外)向处理程序添加一些东西。
您必须复制原始处理程序并添加您的代码。代码重复是一种不好的代码气味。但我不知道子类化块的方法。:(