23 #import <Foundation/Foundation.h>
31 #pragma mark Class Constants
41 #define SCRuntimeProtocolClass @"SCRuntimeProtocol"
82 #pragma mark Creating and Initializing Protocols
87 + (instancetype)protocolWithObjCProtocol:(Protocol *)protocol;
88 + (instancetype)protocolWithName:(NSString *)name;
90 - (instancetype)initWithObjCProtocol:(Protocol *)protocol;
91 - (instancetype)initWithName:(NSString *)name;
94 #pragma mark Quering Protocols
104 @property (nonatomic, readonly, retain) NSString *name;
106 + (NSArray *)allProtocols;
107 - (NSArray *)adoptedProtocols;
109 - (BOOL)conformsToProtocolWithName:(NSString *)name;
112 #pragma mark Access to Protocol Properties
113 - (NSArray *)properties;
114 - (
SCRuntimeProperty *)propertyWithName:(NSString *)name required:(BOOL)required instance:(BOOL)instance;
115 - (BOOL)containsProperty:(
SCRuntimeProperty *)property required:(BOOL)required instance:(BOOL)instance;
116 - (BOOL)containsPropertyWithName:(NSString *)name required:(BOOL)required instance:(BOOL)instance;
119 #pragma mark Access to Protocol Methods
120 - (NSArray *)methodsRequired:(BOOL)required instance:(BOOL)instance;
121 - (NSArray *)methods;
122 - (
SCRuntimeMethod *)methodWithSelector:(
SEL)selector required:(BOOL)required instance:(BOOL)instance;
123 - (BOOL)containsMethod:(
SCRuntimeMethod *)method required:(BOOL)required instance:(BOOL)instance;
124 - (BOOL)containsMethodWithSelector:(
SEL)selector required:(BOOL)required instance:(BOOL)instance;
127 #pragma mark Comparing Protocols
129 - (BOOL)isEqualToName:(NSString *)name;
130 - (BOOL)isEqual:(
id)object;
131 - (BOOL)isEqualToObjCProtocol:(Protocol *)protocol;
134 #pragma mark Communicating with Classes
135 - (BOOL)addToClass:(Class)class;
136 - (BOOL)conformedClass:(Class)class;
141 #pragma mark Communicating with Protocols
Representation of a class method.
Definition: SCRuntimeMethod.h:111
Class SCRuntimeProperty header file.
Representation of a protocols.
Definition: SCRuntimeProtocol.h:77
Class SCRuntimeMethod header file.
Representation of a class property.
Definition: SCRuntimeProperty.h:114
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