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

Version Path
xcfit-0.9.0 XCFitDemo/Pods/cslim/src/ExecutorObjectiveC/OCSSelector.m
xcfit-0.8.0 XCFitDemo/Pods/cslim/src/ExecutorObjectiveC/OCSSelector.m
xcfit-0.7.0 XCFitDemo/Pods/cslim/src/ExecutorObjectiveC/OCSSelector.m
xcfit-0.6.0 XCFitDemo/Pods/cslim/src/ExecutorObjectiveC/OCSSelector.m
xcfit-0.5.0 XCFitDemo/Pods/cslim/src/ExecutorObjectiveC/OCSSelector.m
xcfit-0.4.0 XCFitDemo/Pods/cslim/src/ExecutorObjectiveC/OCSSelector.m
xcfit-0.3.0 XCFitDemo/Pods/cslim/src/ExecutorObjectiveC/OCSSelector.m
xcfit-0.2.0 XCFitDemo/Pods/cslim/src/ExecutorObjectiveC/OCSSelector.m