你如何知道NSObject是否具有某种属性?

str*_*get 13 properties objective-c weak-linking

假设在Apple API版本1.0中,有一个具有属性"color"的NSFoo类.API 1.1添加了属性"大小".

我想知道我是否可以使用getter:myFoo.size

[myFoo respondsToSelector:@selector(getSize)]无法按预期工作.

找出对象是否具有属性的正确方法是什么?谢谢!

Mat*_* B. 36

你很亲密 您的选择器应该是您要发送给对象的消息:

if ( [myFoo respondsToSelector:@selector(size)] ) {
    int size = [myFoo size]; // or myFoo.size in dot-notation.
    // ...
}
Run Code Online (Sandbox Code Playgroud)

应该管用.

  • 应该注意,这是因为属性的默认getter省略了`get`前缀.与具有`set`前缀的setter不同. (5认同)