【问题标题】:Attribute unavailable warnings属性不可用警告
【发布时间】:2017-06-27 21:24:30
【问题描述】:

我正在更新我的应用程序以支持 iOS 11,并在界面构建器中添加了大标题选项。现在我收到了这些“属性不可用 - 在 iOS 11.0 之前更喜欢大标题”警告。

我知道我可以以编程方式设置选项,但这会导致一些其他问题,所以我希望我可以将它保留在情节提要中而忽略警告。如果这些选项不可用,那很好,不要使用它们。有没有办法做到这一点?

我知道还有其他问题在问同样的问题,但它们已经很老了,答案最终解决了它,而不是真正处理警告。

【问题讨论】:

    标签: ios xcode ios11 xcode9


    【解决方案1】:

    如错误所述,您的应用可能针对 iOS

    您是否在 iOS 11 和 10 中测试过您的应用?

    解决方案:

    • 禁用该功能
    • 使用 if #available 在代码中设置它(如果您想保持与早期 iOS 版本的兼容性并使用该功能,这是最佳选择)
    • 将项目的目标设置为 iOS 11
    • Suppress all warnings / Storyboard files only(不推荐)

    【讨论】:

    • 是的,我知道,但我不想继续收到这些警告。
    • 我都测试过,效果很好,只是警告让我很烦。
    • 这就是我所说的“我知道我可以通过编程方式设置选项”的意思……但我希望我可以自己处理警告。
    • 您无法隐藏该特定警告,请查看最后一个链接
    • 啊,这很有趣。那些关于放错地方的警告真的很烦人。我会考虑的。谢谢。 :)
    【解决方案2】:

    由于 OP 没有说明使用的是 Swift 还是 Objective-C,我将发布这两个版本。

    • Swift 2.0+:if #available(iOS 11, *) {}
    • 对象-C:if (@available(iOS 11, *)) {}

    感谢How to check iOS version?

    作为旁注,我能够使用

    来抑制特定警告
    #pragma GCC diagnostic push
    #pragma GCC diagnostic ignored "-Wunguarded-availability"
    ... your code here ...
    #pragma GCC diagnostic pop
    

    不建议这样做 - 但作为一种快速修复它可以工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-04
      • 2017-12-24
      • 2011-07-30
      • 1970-01-01
      • 2011-10-07
      • 2011-11-12
      相关资源
      最近更新 更多