Sha256: 31f2ae1949bcfc9a94ab6e4bb92065b0ebfabfb256edc345febff10642f9fb32
Contents?: true
Size: 1.18 KB
Versions: 8
Compression:
Stored size: 1.18 KB
Contents
#import "OCSSelector.h" @interface OCSSelector () @property (nonatomic, strong) NSString* methodName; @property (nonatomic, strong) NSArray* args; @end @implementation OCSSelector +(SEL) selectorForString:(NSString*) methodName andArgs:(NSArray*) args { return [[[self alloc] initWithString: methodName andArgs: args] getSelector]; } -(id) initWithString:(NSString*) methodName andArgs:(NSArray*) args { if ((self = [super init])) { self.methodName = methodName; self.args = args; } return self; } -(SEL) getSelector { if ([self isArgsEmpty]) { return NSSelectorFromString([self methodName]); } else { return NSSelectorFromString([self multipartMethodName]); } } -(BOOL) isArgsEmpty { return [self.args count] == 0; } -(NSString*) multipartMethodName { NSString* multiMethodName = [[self methodParts] componentsJoinedByString: @":"]; return [multiMethodName stringByAppendingString: @":"]; } +(NSArray*) methodParts:(NSString *) methodName { return [[[self alloc] initWithString: methodName andArgs: NULL] methodParts]; } -(NSArray*) methodParts { return [self.methodName componentsSeparatedByString: @","]; } @end
Version data entries
8 entries across 8 versions & 1 rubygems