如何在没有警告的情况下解决iOS中的独立问题



下面的代码确实可以工作,但它仍然让我感到沮丧,因为在else块中,不推荐的方法调用会导致警告。

if ([self.navigationController respondsToSelector:@selector(dismissViewControllerAnimated:completion:)])
{
    [self.navigationController dismissViewControllerAnimated:YES completion:nil];
}
else
{
    //Here,the warning goes!
    //dismissModalViewControllerAnimated is deprecated
    [self.navigationController dismissModalViewControllerAnimated:YES];
}

如何隐藏已解散的警告,或者是否有其他方法可以解决这个问题?

您可以暂时禁用有关代码行周围的弃用警告:

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
[self.navigationController dismissModalViewControllerAnimated:YES];
#pragma clang diagnostic pop

我看不出有任何理由同时保留遣散viewcontrolleranimated &dismissModalViewControllerAnimated。你正在收到dismissModalViewControllerAnimated的警告,因为你的项目的部署目标是6.0,dismissModalViewControllerAnimated在iOS 6 SDK中已弃用。

  1. 如果你想让你的应用支持6.0以下的iOS,将部署目标更改为6.0以下(例如:5.0),只使用dismissModalViewControllerAnimated来解散模态。
  2. 如果你想让你的应用支持iOS 6.0+,那么保持部署目标为6.0,并且只使用遣散呈现的控制器的遣散viewcontrolleranimated

最新更新