2015-10-20 125 views
1

爲了兼容,我很遺憾地需要使用iOS 9中不推薦使用的方法,並且它會生成警告,在嘗試15個小時後我無法抑制。 例子:xcode7禁用棄用警告

'CFWriteStreamCreateWithFTPURL' was deprecated in iOS 9.0: Use NSURLSessionAPI for ftp requests' 

我曾嘗試:

  1. 項目>目標>構建階段>點擊相應的文件,並選擇標誌-w
  2. 項目>目標>構建階段>點擊相應的文件和選擇標誌
  3. 項目>項目>構建設置> Apple LLVM 7.0 - 警告 - 所有語言>貶損功能>否
  4. 項目>項目> Bui LD設置>蘋果LLVM 7.0 - 警告 - 目標C>重寫折舊Objective C的方法>無
  5. 試圖找到編譯選擇,但它看起來是不可能的
  6. 編輯:我需要用貶值的方法,無論什麼操作系統版本是在設備上

我可以在ObjC中禁止警告,但它似乎並沒有在Swift 2.0中工作,我不得不承認,它開始真的bug我,我知道我必須使用不同的方法最終,但現在這是不可能的。

你如何抑制xCode 7/Swift 2中的警告?

+0

看看這個問題:http:// stackoverflow。 com/questions/31540446/how-to-silence-a-warning-in-swift-2-0 – joern

+0

感謝您的快速回復,但在您的主題中,條件彙編似乎是建議的答案,但它可能不是對我來說是一個好的解決方案,因爲我需要使用折舊方法而不管操作系統版本。 – srolesen

回答

0

我是問上述問題的人,如果有人在這裏尋找相同問題的答案,這裏是我迄今爲止發現的: 點1-6不能迅速生效,因爲沒有預編譯器。 (如果真的如此,我希望蘋果會在我試圖使用-w時發出警告)

如果您確實需要使用已棄用的方法並且不願忍受它生成的警告,那麼您可以添加將代碼的那部分作爲框架,並將您的項目的那部分編譯爲以前的OS版本。最好不要使用已棄用的方法! http://www.rockhoppertech.com/blog/swift-framework-creation/

我希望這是有益的人,如果是錯的,那麼請告訴我爲什麼,以及如何下方:)

0

最簡單的方法是有一個Objective-C文件的完整的具有類似名稱的方法對已棄用的人,並打電話給他們。假設methodX已被棄用,那麼您添加

- (void)methodX_deprecated { 
    [self methodX]; 
} 

並且放置一個編譯器指令來忽略掉這個被棄用的方法。有什麼不錯的是,它告訴你代碼中使用了不贊成使用的方法,因爲最終你想擺脫它們(當iOS 11發佈時)

+0

所以你橋接objc,因爲在objc中,你可以使用預編譯器來沉默警告,然後再橋接回到你需要使用的不贊成的swift方法? – srolesen