【问题标题】:Objective-C - method not in documentation but can be calledObjective-C - 方法不在文档中,但可以调用
【发布时间】:2014-12-23 17:52:54
【问题描述】:

我在学习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

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

谁能解释一下?

【问题讨论】:

    标签: objective-c


    【解决方案1】:

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

    @interface NSObject(NSKeyValueCoding)
    

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

    【讨论】:

    • 或者在将鼠标悬停在valueForKey 上时单击命令,它会显示该方法的定义列表。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-30
      • 1970-01-01
      • 1970-01-01
      • 2023-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多