2012年9月29日 星期六

考慮舊版相容性的App設計

iOS每年推陳出新,不斷地冒出各式各樣新鮮有趣的新類別,新method,讓我們可以天馬行空地發揮想像力,設計更多令人耳目一新的App。但是,世界並沒有想像中美好,不可能每個人的iPhone都升級到最新的iOS。因此,我們還是要考慮到這些舊版iOS使用者的相容性。

以最新推出的iOS 6為例,MKMapItem是個全新的類別,提供我們更方便的地圖應用可能。但是舊版的iOS就不支援了,因此我們在設計App時,最好能夠聰明地判斷,當使用者機器為iOS 6時才使用MKMapItem, 當機器為舊版的iOS時則採用另外的配套方案。

判斷的方法很簡單,只要以下2行程式碼:


 Class itemClass = [MKMapItem class];
 if([itemClass respondsToSelector:@selector(openMapsWithItems:launchOptions:)])
 {
     
 }
說明:
不管使用者的機器是否為iOS 6,都可以建立MKMapItem類別物件。但只有iOS 6機器所建立的,才真正具有執行MKMapItem所定義method的能力。因此只有在iOS 6,以上的if敘述才會成立。


沒有留言:

張貼留言