All Projects → forkingdog → Protocolkit

forkingdog / Protocolkit

Licence: mit
Protocol extension for Objective-C

ProtocolKit

Protocol extension for Objective-C

Usage

Your protocol:

@protocol Forkable <NSObject>

@optional
- (void)fork;

@required
- (NSString *)github;

@end

Protocol extension, add default implementation, use @defs magic keyword

@defs(Forkable)

- (void)fork {
    NSLog(@"Forkable protocol extension: I'm forking (%@).", self.github);
}

- (NSString *)github {
    return @"This is a required method, concrete class must override me.";
}

@end

Your concrete class

@interface Forkingdog : NSObject <Forkable>
@end

@implementation Forkingdog

- (NSString *)github {
    return @"https://github.com/forkingdog";
}

@end

Run test

[[Forkingdog new] fork];

Result

[Console] Forkable protocol extension: I'm forking (https://github.com/forkingdog).
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].