0
我有一大堆源代碼,用在一個項目中有許多不同的應用程序目標。某些目標具有iOS 5.0的部署目標,其中一些目標具有iOS 6.0的部署目標。在構建6.0目標時,對於從6.0開始不推薦使用的方法,我會收到大量棄用警告。這些方法中的大多數都有iOS 6.0中引入的替代方法,因此我無法使用替代方法替代目標爲5.0的代碼。雖然我可以用這兩個構建設置關閉所有廢棄警告:是否可以顯式定義Xcode中針對其棄用警告的SDK?
GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = NO
我寧願不把它們完全關閉。相反,我希望能夠明確告訴編譯器檢查iOS 5.0以下的任何棄用。這可能嗎?有沒有人有這個問題的良好解決方案?
編譯器不知道方法。它只知道標題表示它已被棄用。你可以圍繞這些方法制作包裝,並在每個SDK上做正確的事情(或者只是在一個地方壓低警告)。或者您可以嘗試爲共享代碼構建一個靜態庫,並針對較舊的SDK構建它(應該可以工作,但您可能要仔細測試它)。 – 2013-02-14 01:18:38
共享靜態庫的東西是我所知道的解決這個問題的唯一解決方案,但不幸的是,這個項目已經有一個相當複雜的靜態庫依賴關係糾結了,我寧願不惹惱那些解決這個特定問題的東西。 – 2013-02-14 03:06:03