Monday, February 21, 2011

ObjectiveC Syntax for Specifying Protocol Name in Method Argument

What's the ObjectiveC syntax for specifying a protocol as an argument in a method?

Say I have 2 protocols, MyProtocol and MyProtocolCB:

@protocol MyProtocolCB <NSObject>
- (void) func;
@end

@protocol MyProtocol <NSObject>
- (void) register:(MyProtocolCB*) cb;
@end

I'm receiving this syntax error: error: expected type-specifier before 'MyProtocolCB'

From stackoverflow
  • Try:

    - (void) register:(NSObject<MyProtocol>*) cb;
    
    iPhone beginner : You also might use more generic `id` instead of `NSObject*`, especially if `MyProtocol` already extends `NSObject` protocol

0 comments:

Post a Comment