将应用程序从iOS 5.1更新到6.0 - 新警告?

时间:2012-09-27 12:12:08

标签: ios xcode warnings

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

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

Apple是否期望在任何版本的任何版本中都没有警告? 我是否需要修复所有警告或仅修复某些警告? (即我的应用程序文件VS我包含/导入到应用程序中的外部第三方框架/库) 修复此版本6.0可能会破坏旧版本,对吗? 该应用程序创建的目标为5.1,但是想将其移回4.3(更多用户覆盖率),我只能在模拟器上测试它是否正常?

以下是一些示例警告: - JSONKit.m - 语义问题 - 不推荐直接访问objective-c的isa而支持object_setClass()和object_getClass() - 许多类型的 - 格式指定类型'unsigned long'但参数的类型为'NSUInteger'(又名'unsigned int') - Cocoa API问题 - 使用带有文字的'stringWithString:'是多余的

感谢您的帮助。

3 个答案:

答案 0 :(得分:3)

Apple不知道你编写代码的警告是什么。他们所看到的只是一个带符号的二进制文件,无论是工作(批准)还是不工作(拒绝)。

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

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

答案 1 :(得分:1)

惯例是编译器会生成错误和警告。

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

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

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

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

通常,可以安全地忽略警告,但最好的做法是保持代码清除警告,以便显示任何新警告,并引起您的注意。

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

答案 2 :(得分:0)

在使用JSONKit的情况下,我建议将代码包装在adapater类中,以便您可以将NSJSONSerialization用于大于或等于5.0的版本。

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