respondsToSelector方法對不同ios版本有類似動態支持的功能
例如在ios4.0以後中eagleView中新增了對 iphone4 Retina高清屏幕支持的成員變量scaleContent,在4.1sdk下可以直接使用self.scaleContent = 2,但是如果換用3.2sdk,這樣編譯馬上就會報錯,提示eagleView中沒有這樣的成員變量,這裏報錯也是自然,因爲3.2中根本沒有對高清的支持,這是出了四代的新硬件後新增的。
那有沒有辦法使用同一份代碼在不同的sdk版本中編譯而又能動態運行在不同的ios中呢,這裏,可以使用成員變量的get和set方法,而避免使用 “ . ”屬性,再配合上respondsToSelector方法,這個問題就迎刃而解了。
具體解決思路如下:
if([self respondsToSelector:@selector(setScaleContent:)])
{
[self setScaleContent:2]; //ios4.0以上纔會執行進來
}
else
{
//******************************
}