NSObject基类的方法
+(void) load
功能:类加载到运行时环境时发送该消息
</br>
说明:在类没有实例化对象的时候,该方法已经被调用。即使这个类在程序中没有被使用,它也会加载。换句话说,当应用程序执行的启动的时候,若程序是为iOS平台设计的,则肯定会在此时执行,而且仅调用一次。 (执行该方法时,运行期系统处于“脆弱状态”,在load方法中使用其他类是不安全的)。
</br></br>
+(void)initialize
功能:在程序首次用该类之前调用,且只调用一次。
</br>
说明:它是惰性的,只用当程序用到相关的类时,才会调用;如果某一个类一直都没有使用,那么initialize方法一直不会运行。另外,当执行这个方法的时候,运行期系统已经是处于正常状态,此时可以安全使用并调用任意类中的任意方法。最后,initialize方法与其他消息一样,如果某个类未实现它,而其超类实现了,那么就会运行超类的实现代码(调用两次,一次为自己,一次为自己的子类)。
</br></br>
-(instancetype)init
功能:对已经分配了内存的实例进行初始化,(相当于便利初始化函数),可以重写默认的便利初始化函数,加一些自定义的参数
</br></br>
+ (instancetype)new
功能:同时调用alloc和init函数
</br></br>
+ (instancetype)allocWithZone:(struct _NSZone *)zone
功能:使用自定的NSZone来创建自己的实例。已废除,不建议使用。
+ (instancetype)alloc
功能:返回一个已经分配好内存的对象
</br>
说明:但是内存中的实例变量只是默认值
</br></br>
-(void)dealloc
功能:释放对象自己的内存,释放对象所控制的资源,包括所有实例变量的所有权。
</br>
说明:当一个对象的引用计数为0时,系统自动向对象发送一条dealloc消息;可以重写dealloc方法释放对象内部已经分配好的全部相关资源。dealloc方法不能直接调用,而是有系统在销毁对象时调用。
- (void)finalize
已废除
</br></br>
- (id)copy
功能:发送接收者定义的copyWithZone:zone消息,消息接收者需要实现NSCopying协议
</br>
说明:返回一个通过copyWithZone:创建的实例
</br></br>
-(id)mutableCopy
功能:发送接收者定义的mutableCopyWithZone:zone消息,消息接收者需要实现NSMutableCopying协议
</br>
说明:返回一个通过mutableCopyWithZone:创建的实例
</br></br>
+ (id)copyWithZone:(struct _NSZone *)zone OBJC_ARC_UNAVAILABLE
功能:copy操作实际所调用的方法,可以重写此方法,定义对象的copy操作
</br>
说明:该方法是NSCopying协议的方法
+ (id)mutableCopyWithZone:(struct _NSZone *)zone OBJC_ARC_UNAVAILABLE
功能:mutableCopy操作实际所调用的方法,可以重写此方法,定义对象的mutableCopy操作
</br>
说明:该方法是NSMutableCopying协议的方法
+ (BOOL)instancesRespondToSelector:(SEL)aSelector
功能:判断某个类的实例是否相应某消息
</br>
说明: 不需要一个Class类的实例instance就可以通过这个类的方法获知Class的实例是不是有相关selector的实现
+ (BOOL)conformsToProtocol:(Protocol *)protocol
功能:判断是否遵从一个给定的协议
</br></br>
- (IMP)methodForSelector:(SEL)aSelector
功能:返回接收者实现该方法的地址,调用者可以是实例对象也可以是类对象,函数返回结果的类型可能是实例函数指针,也可能是类函数指针。
</br></br>
+ (IMP)instanceMethodForSelector:(SEL)aSelector
功能:根据指定的sSelector,遍历类的实例方法列表,返回对应的函数指针
</br></br>
- (void)doesNotRecognizeSelector:(SEL)aSelector
功能: 当不存在aSelector是进行异常处理,会使用这个函数
</br></br>
- (id)forwardingTargetForSelector:(SEL)aSelector OSX_AVAILABLE_STARTING(MAC_10_5, __IPHONE_2_0)
功能:在消息转发第二阶段,【备援接收者】这一步,将不能不能处理的未知选择子转发给其他接收者处理
</br></br>
- (void)forwardInvocation:(NSInvocation *)anInvocation
功能:在消息转发第二阶段,【完整消息转发】这一步,将尚未处理的消息有关的全部细节封装到NSInvocation对象中,再将消息指派给目标对象。这种方式可以改变消息内容,比如追加另外一个参数,或者改换选择子。
</br></br>
- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
功能: 返回NSMethodSignature对象,这个对象包含被标示的实例方法的描述。和- (void)forwardInvocation:搭配使用
</br></br>
- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
功能:同- (NSMethodSignature *)methodSignatureForSelector,只是为类方法
</br></br>
+ (BOOL)isSubclassOfClass:(Class)aClass
功能:判断是否为aClass的子类
</br></br>
+ (BOOL)resolveClassMethod:(SEL)sel OSX_AVAILABLE_STARTING(MAC_10_5, __IPHONE_2_0)
功能:消息转发的第一阶段,【动态方法解析】,调用此类看看是否能为此类增加一个实例方法来处理选择子。
</br></br>
+ (BOOL)resolveInstanceMethod:(SEL)sel OSX_AVAILABLE_STARTING(MAC_10_5, __IPHONE_2_0)
功能:同+ (BOOL)resolveClassMethod:,消息转发的第一阶段,【动态方法解析】,调用此类看看是否能为此类增加一个类方法来处理选择子。
</br></br>
+ (NSUInteger)hash
功能:返回一串数,代表对象的hash值
</br></br>
+ (Class)superclass
功能: 返回当前类的父类
</br></br>
+ (Class)class
功能:返回当前类
</br></br>
+ (NSString *)description
功能:返回字符串形式对象的描述,描述中包含了对象的详细信息(方便用于调试
</br></br>
+ (NSString *)debugDescription
功能:description是我们在程序中打Log会调用的方法,debugDescription则是我们在断点调试时,在控制台使用po命令打印会调用的方法