【问题标题】:Permanently ignoring warnings永久忽略警告
【发布时间】:2010-10-07 20:13:58
【问题描述】:

我有一个项目编译时带有一些警告。这是一个在 NSDate 上使用一些方法的 iPhone 项目,这些方法看似不是 iPhone SDK 的标头,但仍然可以完美地工作。当我调用这些方法时,我会收到如下警告:

NSDate warnings http://beautifulpixel.com/assets/NSDate_Warnings-20090215-235727.png

那么我如何永久地使警告静音,以便告诉 XCode“没关系,真的。”

或者我该如何纠正这些警告?这段代码在设备上运行良好,Apple 已经批准了使用这些相同方法的应用程序,所以我肯定可以让 XCode 了解这些方法确实存在。

【问题讨论】:

    标签: iphone objective-c cocoa cocoa-touch xcode


    【解决方案1】:

    我强烈建议您不要使用这些方法。仅仅因为它们是在 Mac OS X 的 Foundation 框架中声明的,并不能阻止它们成为 iPhone 上的私有 API。 Apple 完全有权在商店中停止您的应用程序。同样,没有什么可以阻止 Apple 为 iPhone OS 2.2.2 或更高版本稍微整理 Foundation 并删除这两种方法,从而破坏您的应用程序。

    【讨论】:

      【解决方案2】:

      您可以在 .m 文件的早期编写一个简短的接口扩展来抑制这些警告

      例子:

      @interface NSDate (SuppressSomWarnings)
      - (void)dateWithNaturalLanguageString:(NSString*)_str;
      @end
      

      【讨论】:

        【解决方案3】:

        很奇怪,当我键入相同的两行时,我没有收到任何警告...您是否将标头和框架正确导入到您的项目中?

        我看到它们是在 NSCalendateDate.h 中定义的,它位于 Foundation.framework 中。

        如果做不到这一点,您可以尝试将接口定义直接包含到您的代码中,例如,在您的 .m 文件的顶部,以查看是否可以消除警告。 (请参阅我写这篇文章时出现的 epatel 的回答!)

        【讨论】:

        • 我的 Foundation.framework 没有那个头文件;只有 NSDate.h(缺少这些方法)和 NSCalendar.h(描述 NSCalendar 类)。需要明确的是,这是一个 iPhone 项目。我认为 Cocoa 标头定义了这些方法就好了,但 UIKit 标头没有。
        • 对我来说也一样:iPhone 项目。我正在使用适用于 iPhone 2.2.1 的最新 SDK。缺少这个头文件是不正常的,也许你应该尝试重新安装xcode...
        • 看起来是这样...感谢您的健全性检查。
        【解决方案4】:

        您是否配置了正确的 SDK? 您可能喜欢最新版本,但使用旧的头文件。

        【讨论】:

          【解决方案5】:

          您的代码可能在模拟器中运行,但它在手机上运行吗?

          模拟器使用 OS X Foundation 框架,它是 iPhone 上可用框架的超集。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-03-10
            • 1970-01-01
            • 2018-03-24
            • 2021-01-15
            • 2018-12-09
            • 2017-05-01
            相关资源
            最近更新 更多