dismissModalViewControllerAnimated
已被弃用:首次在 6.0中被弃用
- 我的部署目标是6.1,
Xcode
是5.1。 - 我想为6.1模拟器删除此警告。这可能吗????
- 如果我在ios 5.1中进行选择运行,则没有警告。
dismissModalViewControllerAnimated
已被弃用:首次在 6.0中被弃用
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
@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()
您可以在这里找到新版Swift和Objective-C代码的版本检查器:Swift 和 Objective-C 版本检查(iOS 8以上)
[self presentViewController:loginController animated:YES completion:nil];
或者
[self presentModalViewController:loginController animated:YES];
or
[self dismissViewControllerAnimated:NO completion:nil];
使用以下代码,它完美地工作:
[self dismissViewControllerAnimated:YES completion:nil];
已测试并正常工作。
:)