Objective-C Block的子类是否有用?

时间:2013-01-23 01:20:04

标签: objective-c-blocks

我只是在做白日梦,如何让一个Block对象也成为一名代表,例如到UIAlertView。我承认,这有点奇怪。但是可以向Block对象添加方法吗?你能在方法中访问捕获的变量吗?

3 个答案:

答案 0 :(得分:1)

没有。块文字有一个运行时类,它由实现定义并由编译器决定。您无法控制块对象具有的类;因此,你不能使它成为自定义子类的实例。

答案 1 :(得分:0)

使用REKit,可以在调用委托方法时生成一个块。它不仅限于UIAlertView。您可以将REKit用于委派模式所采用的所有实例。 请参阅REKit的“Delegate itself”示例。

答案 2 :(得分:0)

我的回答是肯定的,但与UIAlertView无关。

想象一个类提供一个块作为网络会话完成处理程序。现在你需要子类化这个类,并(除其他外)向处理程序添加一些东西。

您必须复制原始处理程序并添加代码。代码重复是一种糟糕的代码味道。但我不知道一种子类化块的方法。 :(