不使用 typedef 声明块方法参数
是否可以在 Objective-C 中不使用 typedef 来指定方法块参数?它一定是,就像函数指针一样,但如果不使用中间 typedef,我就无法找到获胜的语法:
typedef BOOL (^PredicateBlock_t)(int);
- (void) myMethodTakingPredicate:(PredicateBlock_t)predicate
只有上面的编译,所有这些都失败:
- (void) myMethodTakingPredicate:( BOOL(^block)(int) ) predicate
- (void) myMethodTakingPredicate:BOOL (^predicate)(int)
而且我不记得我尝试过哪些其他组合。
Is it possible to specify a method block parameter in Objective-C without using a typedef? It must be, like function pointers, but I can't hit on the winning syntax without using an intermediate typedef:
typedef BOOL (^PredicateBlock_t)(int);
- (void) myMethodTakingPredicate:(PredicateBlock_t)predicate
only the above compiles, all these fail:
- (void) myMethodTakingPredicate:( BOOL(^block)(int) ) predicate
- (void) myMethodTakingPredicate:BOOL (^predicate)(int)
and I can't remember what other combinations I've tried.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
事情是这样的,例如...
This is how it goes, for example...
http://fuckingblocksyntax.com
作为方法参数:
http://fuckingblocksyntax.com
As a method parameter:
再举个例子(这个问题受益多):
Another example (this issue benefits from multiple):
更清楚了!
Even more clear !