gpt4 book ai didi

ios - Xcode 不再向我显示已弃用的警告

转载 作者:可可西里 更新时间:2023-11-01 05:20:41 24 4
gpt4 key购买 nike

我继承了一个针对 iOS6+ 的 iOS 项目。几周前,我将它移至 Xcode 6 并清除了所有警告。其中一个警告是:

'UITextAttributeTextShadowColor' is deprecated: first deprecated in iOS 7.0 - Use NSShadowAttributeName with an NSShadow instance as the value

我对此使用了 NSShadowAttributeName 的修复,但我没有正确使用它,导致应用程序在执行过程中的某个时刻崩溃。当我在这几周后发现时,我暂时恢复了旧代码。然而,当我恢复到旧代码时,弃用警告没有出现。我一直无法弄清楚原因并想解决这个问题 - 它提醒我没有显示警告

值得一提的是,在某些代码部分,由于需要保持对 iOS 6 的支持,我需要消除弃用警告。在这些情况下,iOS 6 和 iOS 7+ 设备有单独的代码, iOS 6 代码包围着:

SILENCE_IOS7_DEPRECATION(

// iOS 6 code here

);

(参见 https://stackoverflow.com/a/26564750/3352624)这使用:

#define SILENCE_DEPRECATION(expr)                                   \
do { \
_Pragma("clang diagnostic push") \
_Pragma("clang diagnostic ignored \"-Wdeprecated-declarations\"") \
expr; \
_Pragma("clang diagnostic pop") \
} while(0)

#define SILENCE_IOS7_DEPRECATION(expr) SILENCE_DEPRECATION(expr)
#define SILENCE_IOS8_DEPRECATION(expr) SILENCE_DEPRECATION(expr)

我选择不调整 Xcode 设置并关闭大量代码的警告。

所以我很困惑为什么当我将代码恢复到以前的状态时不再显示弃用警告。

这是我尝试过的:

  1. 从我的代码中删除了对 SILENCE_DEPRECATION 宏的所有引用
  2. 已验证 Deprecated Functions 在目标的 Build Settings 下打开
  3. 已验证我的 Base SDK 设置为 Latest iOS (8.1) 并且我的 iOS Deployment Target 设置为 iOS 6.0
  4. 在目标的 Build Settings 下将 -Weverything 添加到 Other Warnings Flags
  5. 从 git check out 我的工作区的旧版本,这是在我进行任何更改之前
  6. 退出并重新启动 Xcode 6
  7. 尝试过 Xcode 5
  8. 重新启动我的电脑,然后启动 Xcode

这些都没有导致弃用警告再次出现。有什么想法我接下来应该尝试什么吗?

最佳答案

我意识到这是一个非常古老的话题,但我想我会发布一个答案以防其他人找到这个话题。

它还取决于目标的部署目标设置(即,在“目​​标”下,单击应用程序并选择顶部的“常规”,查看“部署目标”的“部署信息”部分)。例如,如果我的部署目标为 7.1 并使用 iOS 8 中弃用的功能,我将不会收到警告。但是,如果我将 Deployment Target 设置为 8.x 或 9.0,我将收到针对这些功能的警告。

关于ios - Xcode 不再向我显示已弃用的警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28707079/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com