为什么有些Apple框架协议不符合<nsobject>?</nsobject>

时间:2013-06-06 00:44:18

标签: objective-c protocols

许多SDK定义的协议,例如。 UITableViewDelegate,符合NSObject协议。有些像NSFastEnumeration那样没有。

有谁知道为什么会这样?

我可以想到的是,Apple可能已经预料到从NSObject之外的根类(例如NSProxy)继承的类可能需要符合NSFastEnumeration之类的协议,而不是(例如)UITableViewDelegate。但两者之间区别的原因并不明显。

1 个答案:

答案 0 :(得分:4)

委托类型协议往往符合NSObject。更像NSCopying的“纯粹”协议则没有。至于为什么,我的假设只是因为他们希望复制,锁定和快速枚举等协议尽可能简单,而对于委托,您总是需要更多标准对象功能,如respondsToSelector: