0

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

有谁知道这可能是为什么?

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

4

1 回答 1

4

委托类型的协议倾向于符合 NSObject。像 NSCopying 这样的“纯”协议则没有。至于为什么,我的假设只是因为他们希望像复制、锁定和快速枚举这样的协议尽可能简单,而对于委托,你总是想要更多标准的对象特性,比如respondsToSelector:.

于 2013-06-06T00:55:05.907 回答