Objective-C-方法不在文档中,但可以调用

Objective-C-方法不在文档中,但可以调用,objective-c,Objective C,我正在学习objective-c,发现我可以调用NSObject的一些方法,但在文档中找不到它们。例如valueForKey方法 NSObject *obj = [[NSObject alloc]init]; NSLog(@"%@", [obj valueForKey:@"class"]); 将打印类名。 但是,NSObject似乎没有方法valueForKey 实际上,协议NSKeyValueCoding有这种方法,但似乎NSObject只符合NSObject协议。 有人能解释一下吗?N

我正在学习objective-c,发现我可以调用NSObject的一些方法,但在文档中找不到它们。例如valueForKey方法

NSObject *obj = [[NSObject alloc]init];
NSLog(@"%@", [obj valueForKey:@"class"]);
将打印类名。 但是,NSObject似乎没有方法valueForKey

实际上,协议NSKeyValueCoding有这种方法,但似乎NSObject只符合NSObject协议。


有人能解释一下吗?

NSObject有一个类别,添加了以下方法:

@interface NSObject(NSKeyValueCoding)

打开xcode,按cmd+shft+o——搜索NSKeyValueCoding.h——打开它并查看。

NSKeyValueCoding
似乎是一种非正式协议,通过
NSObject
上的类别实现,因此不会成为
NSObject

参考页面的一部分,或者只需在将鼠标悬停在
valueForKey
上时单击命令,它将向您显示该方法的定义列表。