Skip to content

forkingdog/ProtocolKit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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).

About

Protocol extension for Objective-C

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published