1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- //
- // FLEXMethodBase.m
- // FLEX
- //
- // Derived from MirrorKit.
- // Created by Tanner on 7/5/15.
- // Copyright (c) 2020 FLEX Team. All rights reserved.
- //
- #import "FLEXMethodBase.h"
- @implementation FLEXMethodBase
- #pragma mark Initializers
- + (instancetype)buildMethodNamed:(NSString *)name withTypes:(NSString *)typeEncoding implementation:(IMP)implementation {
- return [[self alloc] initWithSelector:sel_registerName(name.UTF8String) types:typeEncoding imp:implementation];
- }
- - (id)initWithSelector:(SEL)selector types:(NSString *)types imp:(IMP)imp {
- NSParameterAssert(selector); NSParameterAssert(types); NSParameterAssert(imp);
-
- self = [super init];
- if (self) {
- _selector = selector;
- _typeEncoding = types;
- _implementation = imp;
- _name = NSStringFromSelector(self.selector);
- }
-
- return self;
- }
- - (NSString *)selectorString {
- return _name;
- }
- #pragma mark Overrides
- - (NSString *)description {
- if (!_flex_description) {
- _flex_description = [NSString stringWithFormat:@"%@ '%@'", _name, _typeEncoding];
- }
- return _flex_description;
- }
- @end
|