Objective c 如何确定NSObject是否具有特定属性?

Objective c 如何确定NSObject是否具有特定属性?,objective-c,properties,weak-linking,Objective C,Properties,Weak Linking,假设在Apple API 1.0版中,有一个类NSFoo具有属性“color”。API 1.1增加了属性“大小” 我想知道我是否可以使用getter:myFoo.size [myFoo respondsToSelector:@selector(getSize)]未按预期工作 确定对象是否具有属性的正确方法是什么?谢谢 你很接近了。选择器应该正好是要发送给对象的消息: if ( [myFoo respondsToSelector:@selector(size)] ) { int size

假设在Apple API 1.0版中,有一个类NSFoo具有属性“color”。API 1.1增加了属性“大小”

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

[myFoo respondsToSelector:@selector(getSize)]未按预期工作


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

你很接近了。选择器应该正好是要发送给对象的消息:

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

应该可以工作。

应该注意,这是因为属性的默认getter省略了
get
前缀。与具有
set
前缀的setter不同,我如何以另一种方式进行设置?如果我想在Foo上设置大小?myFoo不知道类属性,因此我无法访问大小。@CristianPena我相信如果您在选择器中将“大小”更改为“设置大小”,则可以调用[myFood设置大小:5]。