Objective c 如何确定NSObject是否具有特定属性?
假设在Apple API 1.0版中,有一个类NSFoo具有属性“color”。API 1.1增加了属性“大小” 我想知道我是否可以使用getter:myFoo.size [myFoo respondsToSelector:@selector(getSize)]未按预期工作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
确定对象是否具有属性的正确方法是什么?谢谢 你很接近了。选择器应该正好是要发送给对象的消息:
if ( [myFoo respondsToSelector:@selector(size)] ) {
int size = [myFoo size]; // or myFoo.size in dot-notation.
// ...
}
应该可以工作。应该注意,这是因为属性的默认getter省略了
get
前缀。与具有set
前缀的setter不同,我如何以另一种方式进行设置?如果我想在Foo上设置大小?myFoo不知道类属性,因此我无法访问大小。@CristianPena我相信如果您在选择器中将“大小”更改为“设置大小”,则可以调用[myFood设置大小:5]。