在iOS 中一个对象最少需要实现NSObject Protocol的方法。
一个遵守了NSObject Protocol的对象可以被认为是一个类的对象。这个对象可以被询问一下信息:
- Class, 和它的类在继承链中的位置
- 协议一致性
- 回复某个具体消息的能力
Cocoa的根类采用了这个协议,所以所有继承走NSObject的对象都有这个协议描述的特点。
class
: 返回消息接收者的类对象。
superClass
: 返回消息接收者的父类对象。
isEqual:
: 返回消息接收者和目标对象是不是同一个。
hash
: 返回一个整数,可以作为一个哈希表中的地址。
self
: 返回消息接收者自身。
isKindOfClass:
: 返回消息接收者是否是目标类或者目标类子类的实例。
isMemberOfClass
: 返回消息接收者是否是目标类的实例。
respondsToSelector:
返回消息接收者是否实现或继承了某个回复目标消息的方法。
conformsToProtocol:
返回消息接收者是否遵守了目标协议。
description
: 返回消息接收者自身的一个描述。
debugDescription
: 返回消息接收者显示在debugger中的描述。
performSelector:
: 向消息接收者发送目标消息,并返回执行消息的结果。
performSelector:withObject:
: 向消息接收者发送一个带参数的消息, 并返回执行消息的结果。
performSelector:withObject:withObject:
:向消息接收者发送两个带参数的消息, 并返回执行消息的结果。
isProxy
: 返回消息接收者是否不继承自NSObject。
retain
: 增加消息接收者的引用计数。
release
: 减少消息接收者的引用计数。
autorelease
: 在当前的autorelease pool中减少消息接收者的引用计数。
zone
: Zones 被大多数以它为参数地类弃用或者忽视。