【问题标题】:Turn Deprecation Warnings Back On重新打开弃用警告
【发布时间】:2013-08-14 08:59:30
【问题描述】:

在 iOS 项目中创建新的 target 后,会出现大量弃用警告。 我也想在其他目标中看到这些。

我在整个项目中搜索了deprecated(正如this answer 所表明的那样),我还寻找了-W(如提到的here),并发现我确实这样做了:

#pragma clang diagnostic ignored "-Warc-performSelector-leaks"

在一两个地方,但不是这样。我查看了大多数关于抑制警告的答案,但我还没有找到我在哪里关闭它。

还有哪些地方可能会关闭弃用警告?我想重新打开我的警告。

示例

这应该会导致警告:

self.numericLabel.lineBreakMode = UILineBreakModeClip;// NSLineBreakByClipping;

【问题讨论】:

  • 我很困惑。您是在尝试关闭警告还是重新启用您之前关闭的警告(因此警告再次开始出现)?
  • 您确定应该对您选择的部署目标发出弃用警告吗?
  • 目标 -> 构建设置 -> 不推荐使用的函数
  • 我知道这听起来可能很愚蠢,但是您是否清理了您的项目并再次尝试并仍然显示警告?
  • @VinodVishwanath 是的,当然。

标签: objective-c xcode


【解决方案1】:

因为 cmets 默认是折叠起来的,有时会被遗漏,所以我用一个例子来详细说明 Greg 的评论。

仅当您的部署目标比 API 的第一次弃用更新时,才会打印弃用警告。

Example 1:
Using: [TWTweetComposeViewController canSendTweet]
Deprecation in Apple's document:NS_DEPRECATED(NA, NA, 5_0, 6_0)
Deployment Target: iOS 5.0
iOS SDK: 6.1
Warning: No

Example 2:
Using: [TWTweetComposeViewController canSendTweet]
Deprecation in Apple's document:NS_DEPRECATED(NA, NA, 5_0, 6_0)
Deployment Target: iOS 6.1
iOS SDK: 6.1
Warning: Yes

在示例 1 中,苹果的弃用文档指出该 api 是在 iOS 5.0 中引入的,在 iOS 6.0 中已弃用。因此,虽然我的 iOS SDK(xcode) 是 6.1,但我没有收到任何警告,因为我的部署目标是需要该 api 的 iOS 5.0。

在示例 2 中,我将部署目标更改为 iOS 6.1,警告开始出现。

结论:部署目标通常是您希望应用支持的最低 iOS 版本。如果您将其设置为 API 弃用之后的版本,则警告开始显示在 Xcode 中

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-27
    • 2018-03-31
    • 1970-01-01
    • 1970-01-01
    • 2020-03-29
    • 1970-01-01
    • 2013-09-11
    相关资源
    最近更新 更多