I'm trying to implement a very simple strategy class in Objective-C that allows for strategies to be defined inline instead of being defined through inheritance. Currently my code looks like this:
@interface SSTaskStrategy : NSObject {
(NSArray *)(^strategy)(void);
}
@end
I thought this would work, but I'm getting the error
Expected specifier-qualifier-list before '(' token
Any ideas how to make this work?
You should drop the parentheses around NSArray *
in your ivar definition:
@interface SSTaskStrategy : NSObject {
NSArray * (^strategy)(void);
}
@end
Also, I highly recommend that you use a typedef
for more clarity:
typedef NSArray * (^Strategy)(void);
@interface SSTaskStrategy : NSObject {
Strategy block;
}
@end
This allows you to reference this block with the name Strategy
instead of having to use the funky syntax every single time you wish to reference it.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With