13
比方说,在Apple API版本1.0中,有一个带有属性'color'的类NSFoo。 API 1.1添加属性“大小”。你怎么知道一个NSObject是否有某个属性?
我想知道我是否可以使用,吸气:myFoo.size
[myFoo respondsToSelector:@selector(的getSize)不能按预期工作。
找出对象是否有属性的正确方法是什么?谢谢!
比方说,在Apple API版本1.0中,有一个带有属性'color'的类NSFoo。 API 1.1添加属性“大小”。你怎么知道一个NSObject是否有某个属性?
我想知道我是否可以使用,吸气: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。 – Senseful 2010-06-17 05:25:30
哈哈,哎呀。谢谢! – strawtarget 2010-06-17 15:40:25
我该如何做到这一点呢?如果我想在Foo上设置尺寸? myFoo不知道类属性,所以我无法访问大小。 – 2015-01-12 18:06:58