23 #import <Foundation/Foundation.h>
27 #pragma mark Class Constants
37 #define SCRuntimeMethodClass @"SCRuntimeMethod"
47 #define SCARG(expr) (__typeof__(expr) []){ expr }
57 #define SC_ARG(expr) (__typeof__(expr) []){ expr }
69 #define _arg_(expr) (__typeof__(expr) []){ expr }
115 #pragma mark Creating and Initializing Methods
121 + (instancetype)methodWithObjCMethod:(Method)method;
122 + (instancetype)methodWithClass:(Class)class selector:(
SEL)selector;
123 + (instancetype)methodWithClass:(Class)class name:(NSString *)name;
124 + (instancetype)classMethodWithClass:(Class)class selector:(
SEL)selector;
125 + (instancetype)classMethodWithClass:(Class)class name:(NSString *)name;
126 + (instancetype)methodWithSelector:(
SEL)selector implementation:(IMP)implementation signature:(NSString *)signature;
128 - (instancetype)initWithObjCMethod:(Method)method;
129 - (instancetype)initWithClass:(Class)class instance:(BOOL)instance selector:(
SEL)selector;
130 - (instancetype)initWithClass:(Class)class instance:(BOOL)instance name:(NSString *)name;
131 - (instancetype)initWithSelector:(
SEL)selector implementation:(IMP)implementation signature:(NSString *)signature;
134 #pragma mark Quering Methods
144 @property (nonatomic, readonly, assign)
SEL selector;
150 @property (nonatomic, readonly, retain) NSString *name;
156 @property (nonatomic, readwrite, assign) IMP implementation;
162 @property (nonatomic, readonly, copy) NSString *signature;
167 #pragma mark Comparing Methods
169 - (BOOL)isEqualToSelector:(
SEL)selector;
170 - (BOOL)isEqualToName:(NSString *)name;
171 - (BOOL)isEqual:(
id)object;
172 - (BOOL)isEqualToObjCMethod:(Method)method;
175 #pragma mark Sending Messages
176 - (void)sendWithValue:(
void *)value target:(
id)target arguments:(va_list)arguments;
177 - (void)sendWithValue:(
void *)value target:(
id)target, ...;
178 - (id)objectFromTarget:(
id)target arguments:(va_list)arguments;
179 - (id)objectFromTarget:(
id)target, ...;
180 - (void)sendToTarget:(
id)target arguments:(va_list)arguments;
181 - (void)sendToTarget:(
id)target, ...;
184 #pragma mark Communicating with Classes
185 - (BOOL)addToClass:(Class)class instance:(BOOL)instance;
187 - (BOOL)availableInClass:(Class)class instance:(BOOL)instance;
191 #pragma mark Communicating with Protocols
193 - (BOOL)availableInProtocol:(
SCRuntimeProtocol *)protocol required:(BOOL)required instance:(BOOL)instance;
194 - (BOOL)availableInProtocolWithName:(NSString *)name required:(BOOL)required instance:(BOOL)instance;
Representation of a class method.
Definition: SCRuntimeMethod.h:111
Representation of a protocols.
Definition: SCRuntimeProtocol.h:77
Class SCRuntimeObject header file.
Representation of an unregistered protocols.
Definition: SCRuntimeUnregisteredProtocol.h:75
Representation of an unregistered classes.
Definition: SCRuntimeUnregisteredClass.h:85
Parent class of all library runtime classes.
Definition: SCRuntimeObject.h:53