【问题标题】:Finding if a class is key-value-compliant for a given key查找类对于给定键是否符合键值
【发布时间】:2012-10-26 16:29:48
【问题描述】:

有没有一种方法可以判断一个类是否符合给定键的键值对?

【问题讨论】:

    标签: objective-c cocoa-touch cocoa key-value-observing key-value-coding


    【解决方案1】:

    你可以询问它是否响应选择器,或者询问 key 的值

    //will check for the getter
    [anObj respondsToSelector:@selector(someKey)]
    
    //will check in a way that doesn't throw an exception for a value
    [andObj valueForKey:@"someKey"]
    
    //keypath of a nested value
    [anObj valueForKeypath:@"child.property"]
    

    但是,如果您收到一条消息表明某些内容不符合 KVC,这通常意味着您设置了不正确的内容,例如使用错误的键或类进行绑定。

    【讨论】:

    • [anObj respondsToSelector:NSSelectorFromString(somekey)] 是正确的
    • @rokey 不,不是。对象可以与 somekey 的键值编码兼容,但您的方法调用将返回 NO
    猜你喜欢
    • 2013-09-09
    • 1970-01-01
    • 2010-12-28
    • 1970-01-01
    • 2015-04-25
    • 2014-01-12
    • 1970-01-01
    • 2021-04-20
    相关资源
    最近更新 更多