2014-01-30 20 views
0

我已經編寫了專門用於iOS7的應用程序,現在正試圖使其適用於iOS6。XCode設置,以查看哪些代碼在以前的操作系統版本中不起作用

我真的很喜歡一個設置來啓用警告,其中突出顯示的代碼行不會在iOS6上工作。即任何只能在iOS7上運行的代碼的調用。

通過這種方式,我可以在調試過程中捕獲它們之前立即識別需要注意的任何代碼行。

這是否存在?

+0

我不認爲這是可能的。唯一的方法是在iOS6下運行你的應用程序,徹底調試並尋找崩潰。 – GuybrushThreepwood

+0

謝謝@Ohnomycoco。 – theDuncs

+0

嘗試將部署目標設置爲iOS 6 – Volker

回答

1

有兩種方法可以解決這個問題。

  1. 使用MJGAvailability,這是一個頭文件的放置,如果選擇器是「太新」,它會發出警告。
  2. 購買Delpoymate,它可以掃描您的Xcode項目,並顯示任何不兼容的電話。

如果使用舊的Xcode旁邊最新的,不是用這個片段:

if ([self respondsToSelector:@selector(newSelector)]){ 
#if __IPHONE_7_0 
     [self newSelector]; 
#endif 
} else { 
     [self oldSelector]; 
} 
+0

MJGAvailability FTW!謝謝Tuss! – theDuncs

0

沒有得到一個警告出現和方式即使有會怎麼IDE現在你會做什麼來處理它像下面

if([myObject respondsToSelect:@selector(myiOS7SelectorOnly)]) { 
    [myObject myiOS7SelectorOnly]; 
} 

它的工作原理其他方式,如果你在爲iOS7開發應用程序時,您使用了不推薦使用的方法,但iOS7 API不再使用,它​​會給您一個警告,但不會以其他方式,您將不得不等待它轉身併發生崩潰並拋出異常。

+0

是的,我感謝一個警告可能不是正確的「策略」來解決這個問題。但我確實認爲有一個用例來識別不適用於某個操作系統版本的代碼行。 – theDuncs

+0

有沒有辦法將BaseSDK臨時設置爲iOS6?這會起作用嗎?我只有iOS7作爲一個選項,所以不能嘗試。 – theDuncs

+0

是的,我可以看到有需要它,但不幸的是它只是以另一種方式做它不是你想要的方式。你可以搜索一個非官方的xcode插件,但我不確定你會搜索什麼。 – Popeye

0

在某些時候,我安裝了2個Xcode - Xcode 4和Xcode 5. Xcode 4沒有針對ios7的API,它顯示了所有的不兼容性。 但是我不知道你現在可以在哪裏找到XCode4,它會不會在ios7代碼中顯示錯誤? 至少你可以試試這種方式。

+0

這不會去擺脫一旦你已經處理了他們的警告。另外我相信,只要安裝了xcode 5,你就可以在xcode 4中開發iOS 7,因爲它將使用相同的庫(這只是在這裏 - 說我從來沒有嘗試過)。 – Popeye

+0

當然,警告和錯誤將會保留。我沒有使用XCode4進行編譯,我只是用它來檢查可能是錯誤的。 問題要求以某種方式自動查看可能的錯誤位置,並且xcode4可能會對此有所幫助 –

+0

我不確定這是否會發生,但我並不下調,因爲如果您發現錯誤或不確定我會把它留給OP來做。 – Popeye

相關問題