类
@interface NSObject <NSObject> { Class isa OBJC_ISA_AVAILABILITY; } // 初始化加载 + (void)load; // 初始化对象 + (void)initialize;
// 初始化对象,分配内存 - (instancetype)init; // 分配一个新的接受类实例,并发送init消息,返回初始化对象 + (instancetype)new;
// init后系统自动调用该方法,用于内存分配 + (instancetype)allocWithZone:(struct _NSZone *)zone;
// 内存中为一个对象分配内存,并返回实例 + (instancetype)alloc;
// 用于类释放对象实例并释放动态内存 - (void)dealloc; // 标明该对象需要释放 - (void)finalize; // 复制一个imutable的对象 - (id)copy;
// 复制一个mutable的对象 - (id)mutableCopy; // <NSCopying>协议后实现的copy方法 + (id)copyWithZone:(struct _NSZone *)zone;
// <NSCopying>协议后实现的mutablecopy方法 + (id)mutableCopyWithZone:(struct _NSZone *)zone; // 类是否存在该方法 + (BOOL)instancesRespondToSelector:(SEL)aSelector;
// 类是否实现该协议 + (BOOL)conformsToProtocol:(Protocol *)protocol;
// 返回对象中指定的函数指针 - (IMP)methodForSelector:(SEL)aSelector;
// 返回类中指定的函数指针 + (IMP)instanceMethodForSelector:(SEL)aSelector;
// 该对象找不到对应的实现方法时执行该方法,用于抛出异常 - (void)doesNotRecognizeSelector:(SEL)aSelector; // 若返回非nil,非self,则将详细转发给该对象,否则继续其他流程 - (id)forwardingTargetForSelector:(SEL)aSelector;
// 与上一个类似,但该方法可转发给多个对象,是最后一个寻找IML的机会 - (void)forwardInvocation:(NSInvocation *)anInvocation;
// 让重载方有机会抛出函数签名,再由上一个方法执行 - (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector; // 同上,该方法为类方法 + (NSMethodSignature *)instanceMethodSignatureForSelector:(SEL)aSelector; // 对象是否支持weak - (BOOL)allowsWeakReference UNAVAILABLE_ATTRIBUTE;
// 对象是否支持retain,weak - (BOOL)retainWeakReference UNAVAILABLE_ATTRIBUTE; // 是否为该类的子类 + (BOOL)isSubclassOfClass:(Class)aClass; // 当执行不存在的类方法时,调用该方法,默认返回NO,加上自己的处理后可返回YES + (BOOL)resolveClassMethod:(SEL)sel;
// 同上,但该方法为雷芳法 + (BOOL)resolveInstanceMethod:(SEL)sel; // hash值 + (NSUInteger)hash;
// 方法调用者的父类类名 + (Class)superclass;
// 方法调用者的类名 + (Class)class;
// 对象描述,可自己实现 + (NSString *)description;
// 调试对象描述 + (NSString *)debugDescription; @end
协议
@protocol NSObject - (BOOL)isEqual:(id)object;
@property (readonly) NSUInteger hash; @property (readonly) Class superclass;
// 返回类名 - (Class)class;
// 是一个指针,地址指向当前类 - (instancetype)self; // 单线程,等包含该函数的方法执行完后才执行指定的方法 - (id)performSelector:(SEL)aSelector;
// 同上 - (id)performSelector:(SEL)aSelector withObject:(id)object;
// 同上 - (id)performSelector:(SEL)aSelector withObject:(id)object1 withObject:(id)object2; // 对象是否为代理 - (BOOL)isProxy; // 对象是否为指定类 - (BOOL)isKindOfClass:(Class)aClass;
// 对象是否为成员类 - (BOOL)isMemberOfClass:(Class)aClass;
// 是否实现对应协议 - (BOOL)conformsToProtocol:(Protocol *)aProtocol; // 是否需执行对应方法 - (BOOL)respondsToSelector:(SEL)aSelector; // - (instancetype)retain OBJC_ARC_UNAVAILABLE;
// - (oneway void)release OBJC_ARC_UNAVAILABLE;
// - (instancetype)autorelease OBJC_ARC_UNAVAILABLE;
// - (NSUInteger)retainCount OBJC_ARC_UNAVAILABLE; // - (struct _NSZone *)zone OBJC_ARC_UNAVAILABLE; @property (readonly, copy) NSString *description;
@optional @property (readonly, copy) NSString *debugDescription; @end
望指正