Xcode弃用警告并不总是出现

Mik*_*nov 2 xcode objective-c deprecated ios

似乎只有在开发目标之前弃用方法时,Xcode(6.3)中的弃用警告才会出现.我的开发目标是7.0,基础SDK是8.3.在iOS 7.0之前弃用的方法会给出警告,但如果在iOS 8.0中弃用该方法则不会.例:

[self.mainController didAnimateFirstHalfOfRotationToInterfaceOrientation:UIInterfaceOrientationPortrait];
[self.mainController willAnimateRotationToInterfaceOrientation:UIInterfaceOrientationPortrait duration:1];
Run Code Online (Sandbox Code Playgroud)

上面代码的第一行给出了警告(iOS 5.0中不推荐使用的方法)

第二行不会产生任何警告(iOS 8.0中不推荐使用的方法)

我认为这是不正确的,因为我错过了这个方法在iOS 8.0中被弃用的事实,因此我们的应用程序的真实用户(使用iOS 8.3)受到影响.如果我有警告,我会提前知道.

这是正常行为还是错误?

mat*_*att 5

似乎只有在开发目标之前弃用方法时,Xcode(6.3)中的弃用警告才会出现

好吧,想一想:

  • 假设您的部署目标是iOS 7.

  • 并假设在iOS 8中不推荐使用某种方法.

  • 并假设您使用新的iOS 8方法替换它.

现在应用程序将在iOS 7上崩溃,因为新的iOS 8 是一种新的iOS 8方法 - 它在iOS 7中不存在.

因此,如果要在两个系统上向后兼容,则可能必须至少使用一些在以后的系统中不推荐使用的方法,以便在早期系统上运行.因此,没有必要警告你这些.错误将是另一种方式 - 如果编译器警告你所有这些!

所以我们的应用程序的真实用户(使用iOS 8.3)受到影响

可能不是."弃用"并不意味着"破碎"或"不再有效".这意味着"弃用".该方法继续有效.(直到没有,但尚未发生.)