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

时间:2014-12-23 17:52:54

标签: objective-c

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

NSObject *obj = [[NSObject alloc]init];
NSLog(@"%@", [obj valueForKey:@"class"]);

将打印班级名称。 但是NSObject似乎没有方法valueForKey https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSObject_Class/index.html

实际上protocal NSKeyValueCoding有这个方法,但似乎NSObject只符合NSObject协议。 https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Protocols/NSKeyValueCoding_Protocol/index.html

有人可以解释一下吗?

2 个答案:

答案 0 :(得分:2)

NSObject有一个添加这些方法的类别:

@interface NSObject(NSKeyValueCoding)

打开xcode,按cmd + shft + o - 搜索NSKeyValueCoding.h - 打开它然后看。

答案 1 :(得分:0)

NSKeyValueCoding似乎是一种非正式协议,通过NSObject上的类别实施,因此不会成为NSObject参考页的一部分。