views:

57

answers:

1

Let's say in Apple API version 1.0, there is a class NSFoo with a property 'color'. API 1.1 adds property 'size'.

I want to know whether I can use the getter: myFoo.size

[myFoo respondsToSelector:@selector(getSize)] doesn't work as expected.

What's the correct way to find out if an object has a property? Thanks!

+4  A: 

You're close. Your selector should be exactly the message you want to send to the object:

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

should work.

Matt B.
It should be noted that this is because the default getters for properties omit the `get` prefix. Unlike setters which have the `set` prefix.
Senseful
Haha, oops. Thanks!
strawtarget