这里有一个有趣的目标 - C大师......
有没有办法声明一个包含该typedef参数的objective-C块typedef?
typedef BOOL (^SSCellAction) ( UITableViewController* inTVC, SSCellAction inChainedAction );
我的想法是,我想使用链式菜单操作系统,允许一系列工作/响应发生(通常1-3项)。当最后一个动作调用时,它为inChainedAction
传递nil。由于这看起来似乎相当微不足道,如果我能在没有说不的情况下弄清楚如何宣布它,我就会被诅咒。 :)
答案 0 :(得分:2)
rmaddy的评论是正确的。就像在C中一样,typedef
不能使用它自己。基本上,typedef
不是真正的类型,而只是编译编译器在编译时扩展的别名。总是可以自己手动扩展程序中的所有typedef
(这有时是一个有益的练习),因此您的程序编写时没有typedef
。但是,无法扩展递归typedef
。
一些可能的解决方法:
id
作为参数类型,并在块内强制转换为正确的类型。这会失去类型安全性。