-->

iOS6的方法已过时MonoTouch的中(IOS6 Deprecated Methods in M

2019-09-23 17:46发布

现在我们的应用程序的目标是ios5.1。 和安装MT 6.0.2之后过时的警告,填补了构建日志。 如果过时方法保持静止源还是应该被取代?

举例来说,我应该替换为以下:

public override bool ShouldAutorotateToInterfaceOrientation (UIInterfaceOrientation toInterfaceOrientation)
{
    switch(toInterfaceOrientation) {
        case UIInterfaceOrientation.LandscapeLeft:
        case UIInterfaceOrientation.LandscapeRight:
            return true;
        default:
            return false;
    }
}

public override UIInterfaceOrientationMask GetSupportedInterfaceOrientations ()
{
    return UIInterfaceOrientationMask.Landscape;
}

或具有两者的代码库中的重写方法呢?

Answer 1:

有几个原因废弃的方法。 你得到的,从编译器警告消息,会告诉你为什么一个方法过时 。 督察的iOS 不赞成的方法是过时的方法,其中的一个子集。

当一个新的iOS版本发布苹果经常弃用几个API。 这意味着API:

  • 已经换成更好的东西/不同;
  • 可能是,在某些时候( 而不是在当前的iOS版本),从iOS的(如清理不很频繁发生)取出;

因此,这些都是警告 ,而不是错误。 您应该检查并决定如何处理这些问题。 例如

  • 如果你正在编写新的代码/应用程序,这需要iOS6的最低限度,那么你应该只使用新的API(不会被弃用的);

  • 如果您要更新,需要你与早期的IOS版本(如5.1),那么你很可能需要使用旧的API和,渐渐地,更新它们是否有意义(如iOS6的具体特点,不同的代码兼容的应用程序路径...)。

  • 如果您的应用程序支持的最小的iOS版本是4.2,你不应该使用在4.0,3.2是不提倡使用的API ...但你应该注意不要使用新的API,以及。

在你的榜样旧ShouldAutorotateToInterfaceOrientation才能既为iOS5.1和iOS6的工作。 因此最简单的解决办法是使用这个API,只要你想支持的iOS 5.x的保持

重写两个手段(一般),其iOS6的将调用新的一个,而iOS5的将调用旧的一个。 这可以使测试困难和构建应用程序时,它不会删除已过时的警告。 但是,如果是有意义的这样做(对于某些API)时,你可以得到的东西从新版iOS API更好。



文章来源: IOS6 Deprecated Methods in Monotouch