我正在学习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
有人可以解释一下吗?
答案 0 :(得分:2)
NSObject有一个添加这些方法的类别:
@interface NSObject(NSKeyValueCoding)
打开xcode,按cmd + shft + o - 搜索NSKeyValueCoding.h - 打开它然后看。
答案 1 :(得分:0)
NSKeyValueCoding
似乎是一种非正式协议,通过NSObject
上的类别实施,因此不会成为NSObject
参考页的一部分。