Objective-C协议的默认实现

3 cocoa protocols objective-c key-value-coding

setValue:forKeyPath:在Apple的NSKeyValueCoding协议文档中的方法讨论开始于:

这种方法的默认实现[...]

现在,这可能只是让我陷入了语义,但是:

  1. Objective-C协议如何具有默认实现
  2. 由于NSObject似乎不符合此协议,如何能够在自己的NSObject子类中利用此默认实现

jle*_*ehr 5

NSKeyValueCoding是一种非正式协议,这意味着它被实现为一个类别(在本例中为on NSObject).本NSObject类提供的类声明的方法的默认实现.

  • @QwertyBob为了强化Josh Caswell的观点,每当我教授Objective-C和iOS课程时,我都鼓励学生养成在Xcode中按住Command键点击符号的习惯,跳转到他们的定义并在查看文档之前先查看一下.举个例子,当你浏览NSKeyValueCoding.h而不是正式的文档时,你会跳出很多不同的东西,尽管每个人都以自己的方式提供大量的信息. (2认同)