如何在最近才引入iOS的对象上安全地使用属性?

时间:2011-04-05 12:33:26

标签: iphone objective-c ios ipad

我想使用最近在iOS 4.3中引入的 UIViewController 上的 disablesAutomaticKeyboardDismissal 属性。

如何处理/检查早期版本的iOS运行我的应用程序并且此属性不可用的情况?

如果它是一个选择器,我会使用 respondsToSelector:@selector(something),但我不知道该怎么做一个属性。

谢谢大家!

2 个答案:

答案 0 :(得分:6)

一个属性只是声明了setter和getter。在这种情况下:

setDisablesAutomaticKeyboardDismissal:

disablesAutomaticKeyboardDismissal

所以你可以这样做:

if([object respondsToSelector:@selector(disablesAutomaticKeyboardDismissal)]) {
    // do your stuff here    
}

答案 1 :(得分:3)

继续@ pt2ph8的回答,一个属性只不过是一种生成方法的奇特方式(这个级别的差异并不重要)。可读属性的存在意味着实例将响应该名称的选择器,因此-respondsToSelector:是正确的测试。