respondsToSelector的妙用

 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
    {

       //******************************
    }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章