【问题标题】:Updating app from iOS 5.1 to 6.0 - new warnings?将应用程序从 iOS 5.1 更新到 6.0 - 新警告?
【发布时间】:2012-09-19 05:20:38
【问题描述】:

我是一个应用程序和 Xcode 的更新/版本控制过程的新手,所以这里有几个问题:

我创建了应用程序并获得了在旧 xcode 和模拟器 5.1 中运行的苹果的批准。我没有任何警告信息。现在在新的 xcode 和模拟器 6.0 中运行时,我收到 20 多条新的警告消息。

Apple 是否希望在任何版本的任何构建中都不会出现警告? 我需要修复所有警告还是只修复某些警告? (即我的应用程序文件与我包含/导入应用程序的外部第 3 方框架/库) 为这个版本 6.0 修复它们可能会因旧版本而中断,对吗? 该应用程序的目标是 5.1,但想将其移回 4.3(更多用户覆盖),我只能在模拟器上测试,可以吗?

以下是一些示例警告: - JSONKit.m - 语义问题 - 直接访问目标 c 的 isa 已被弃用,有利于 object_setClass() 和 object_getClass() - 许多类型,例如 - 格式说明类型为“unsigned long”,但参数的类型为“NSUInteger”(又名“unsigned int”) - Cocoa API 问题 - 使用带有文字的 'stringWithString:' 是多余的

感谢您的帮助。

【问题讨论】:

  • 4.3(更多用户覆盖)??几个月前,5.0 的采用率已经超过 80%。回去了吗?
  • 我不知道采用率这么高。是不是最好使用尽可能低的目标,所以大多数 iphone 用户的手机都兼容?无论哪种方式,关于我应该如何解决警告的任何意见?谢谢。

标签: ios xcode warnings


【解决方案1】:

Apple 不知道您在编译代码时收到了哪些警告。他们所看到的只是一个签名的二进制文件,一个可以工作(批准)或不工作(拒绝)的二进制文件。

你为什么现在得到它们?因为新版本的 Xcode 具有更好的启发式检查可疑代码。弃用警告是因为您现在使用更新版本的 iOS 作为目标。

你应该修复它们吗?大概。我确实发布了带有编译警告的代码,但您需要考虑不根据具体情况修复警告的风险。有些比其他的更重要或更危险。

【讨论】:

    【解决方案2】:

    约定是编译器生成错误和警告。

    错误是阻止编译器解析源代码和生成代码的致命问题。

    编译器警告是关于潜在问题,这些问题不会阻止编译成功,但可能会导致运行时出现问题,或者标记您应该注意的问题。

    您应该了解每个警告所描述的问题,并决定是否采取行动。

    具体来说,弃用警告是一个“提示”,即未来版本的 iOS(或库,或其他)可能不再支持您正在使用的 API,是时候考虑迁移到新的 API,或删除依赖该 API 的代码。

    通常,可以安全地忽略警告,但最佳做法是保持代码中没有警告,以便任何新警告都显而易见,并引起您的注意。

    Apple 不会根据编译警告拒绝应用程序。 Apple 只能看到提交的二进制文件,无权访问源代码和任何相关警告。

    【讨论】:

      【解决方案3】:

      在使用 JSONKit 的情况下,我建议将您的代码包装在一个 adapater 类中,这样您就可以将 NSJSONSerialization 用于 5.0 以上或等于 5.0 的版本。

      iOS 版本低于 5.0 的用户群有多大?我读到它不到1%?

      【讨论】:

        猜你喜欢
        • 2020-12-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-27
        相关资源
        最近更新 更多