Search code examples
objective-cpropertiesweak-linking

how can you find out if an NSObject has a certain property?


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!


Solution

  • 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.