ian*_*675 7 objective-c objective-c-blocks
我正在尝试在Objective-C中实现一个非常简单的策略类,它允许在内联定义策略而不是通过继承定义策略.目前我的代码如下所示:
@interface SSTaskStrategy : NSObject {
(NSArray *)(^strategy)(void);
}
@end
Run Code Online (Sandbox Code Playgroud)
我认为这会奏效,但我收到了错误
在'('标记之前'的预期说明符限定符列表
任何想法如何使这项工作?
Jac*_*kin 17
你应该NSArray *在你的ivar定义中删除括号:
@interface SSTaskStrategy : NSObject {
NSArray * (^strategy)(void);
}
@end
Run Code Online (Sandbox Code Playgroud)
此外,我强烈建议您使用typedef更清晰:
typedef NSArray * (^Strategy)(void);
@interface SSTaskStrategy : NSObject {
Strategy block;
}
@end
Run Code Online (Sandbox Code Playgroud)
这允许您使用名称引用此块,Strategy而不是每次要引用它时都必须使用时髦的语法.
| 归档时间: |
|
| 查看次数: |
2476 次 |
| 最近记录: |