dismissModalViewControllerAnimated
警告已經過時:首先在iOS
6.0禁止`deprecated`在Xcode
- 我的部署目標是6.1和
Xcode
是5.1棄用。 - 我想刪除6.1模擬器的這個警告。那可能嗎?
- 如果我將通過選擇在ios 5.1中運行,則不會發出警告。
dismissModalViewControllerAnimated
警告已經過時:首先在iOS
6.0禁止`deprecated`在Xcode
Xcode
是5.1棄用。如果我是正確的,你只是想壓制警告。
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
這只是爲了壓制警告。在發佈版本中,您不應該使用任何棄用的函數。
編輯:爲了抑制調用警告特定代碼,使用:
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
[self dismissModalViewControllerAnimated:YES];
#pragma clang diagnostic pop
更好地取代不推薦使用新代碼代替抑制代碼,只需將該行替換爲:[self dismissViewControllerAnimated:NO completion:nil] ;.這是更好的選擇。 –
感謝您的回答。是否有解決方案來隱藏特定警告的警告。我不想壓制VC中的所有警告。 – Jayaprada
查看更新的代碼。 另外,除非您的部署目標<5.0,建議使用更新的方法。他們可以從iOS 5.x – n00bProgrammer
使用
[self presentViewController:loginController animated:YES completion:nil];
或
[self presentModalViewController:loginController animated:YES];
或
[self dismissViewControllerAnimated:NO completion:nil];
因此使用下面的代碼它的作品完美
[self dismissViewControllerAnimated:YES completion:nil];
測試和工作正常。
:)
@ n00bProgrammer謝謝您的回答。
對於那些仍然擁有支持iOS早期版本的代碼的人來說,我處理舊代碼的方式是在版本宏測試中包裝較舊的代碼,並抑制導致的編譯器警告。
注意,有時棄用的項目生成隱式轉換警告需要使用「-Wconversion」被抑制。
if (SYSTEM_VERSION_LESS_THAN(@"6.0")) {
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
#pragma clang diagnostic ignored "-Wconversion"
[controlCenter.label setLineBreakMode:UILineBreakModeWordWrap];
#pragma clang diagnostic pop
} else {
[controlCenter.label setLineBreakMode:NSLineBreakByWordWrapping];
}
你可以在這裏找到的版本檢查對老年人Objective-C代碼:SYSTEM_VERSION_LESS_THAN()
你可以找到的版本檢查爲新雨燕和Objective-C代碼在這裏:Swift and Objective-C version check past iOS 8
可能的複製 - - > http://stackoverflow.com/questions/12445190/dismissmodalviewcontrolleranimated-deprecated – Maverick
可能重複[抑制Xcode中不推薦使用的警告](http://stackoverflow.com/questions/2622017/suppressing-deprecated-warnings-in- xcode) – mylogon