许多SDK定义的协议,例如。 UITableViewDelegate,符合NSObject协议。有些像NSFastEnumeration那样没有。
有谁知道为什么会这样?
我可以想到的是,Apple可能已经预料到从NSObject之外的根类(例如NSProxy)继承的类可能需要符合NSFastEnumeration之类的协议,而不是(例如)UITableViewDelegate。但两者之间区别的原因并不明显。
答案 0 :(得分:4)
委托类型协议往往符合NSObject。更像NSCopying的“纯粹”协议则没有。至于为什么,我的假设只是因为他们希望复制,锁定和快速枚举等协议尽可能简单,而对于委托,您总是需要更多标准对象功能,如respondsToSelector:
。