2012-01-17 34 views
1

我對iOS開發並不陌生,剛剛完成了我的第一個使用iOS5 SDK和Xcode 4.2的應用程序。現在的問題是,我的應用程序將要求用戶升級到iOS5,因爲我使用Storyboard API爲應用程序創建UI。 Storyboard僅在iOS5中可用。如何使iOS5應用程序向後兼容iOS4?

我的問題是,如何使我的應用程序向後兼容至少iOS4?是否就像使用nib文件創建UI一樣簡單?有人能給我一個關於如何去做這個例子的指針嗎?

此外,還有其他類似的陷阱,我需要知道這將使我的應用程序向後不兼容?

+1

在低於4.0的Xcode中打開項目,編譯並查看..其中顯示了差異.. – vishy 2012-01-17 08:54:16

+2

請考慮是否值得爲新應用程序付出努力。多少應用購買用戶羣(而不是普通用戶羣)已經或將會保留在iOS4上?如果你使用故事板,你正在尋找一個重要的改寫。 – jrturton 2012-01-17 08:59:10

回答

4

一般兼容你應該:

  1. 弱鏈接框架。例如,Twitter.framework僅適用於iOS> 5.0,因此請在Xcode的Link Binary with Libraries部分中將框架標記爲optional

  2. 導入框架的頭部像往常一樣

    #import <Twitter.Twitter.h> 
    
  3. 而不是檢查的「是操作系統版本比5.0大」你倒是應該檢查這樣的:

    • 是用類具體名稱:

      Class TWTweetClass = NSClassFromString(@"TWTweetComposeViewController"); 
      
      if (TWTweetClass){ 
          // Use the new stuff 
          TWTweetComposeViewController *tweetSheet = [[TWTweetComposeViewController alloc] init]; 
          // etc. 
      } else { 
          // Handle the case when the class is not available 
      } 
      
    • 做一個以選擇給定的對象響應:

      if([someObject doesRespondToSelector:@selector(someNewlyAvailableSelector:)]){ 
          [someObject performSelector:@selector(someNewSelector:)]; 
      } 
      

這正常工作與Twitter的框架,然而,故事板是在不同的方面,因爲它不像是一個可選的框架,您可以查閱運行。如果你想使用故事板,你的用戶必須至少有iOS 5.0版本。

0

UIStoryboardSegue僅適用於iOS 5,該應用程序不會在iOS 4上運行。由於它不是編譯時功能,您將不得不返回使用NIB。

你使用任何方法,這些方法只能在iOS 5中可不會在iOS 4的工作,因此這意味着,如果你想成爲向後與故事板處理任何方法都無法在iOS中工作4