我在商店里有一个为 3.1.2 构建的应用程序,但在 4.0GM 下崩溃了。我已经使用 Xcode 3.2.3 修复了崩溃问题,但也收到警告称此类类未实现 NSXMLParserDelegate。我添加到标题中,一切看起来都很好。我现在已经提交了应用程序,正在等待审核。此最新版本是使用 4.0 的基础 SDK 和 3.1.2 的部署目标编译的。
我遇到的问题是,今天早上我在 Xcode 3.2.2 中打开了该项目,当针对 3.1.2 的基础 SDK 进行构建时,我收到编译错误,指出 NSXMLParserDelegate 不存在。这是否意味着我正在等待审核的应用程序将在 3.1.2 设备下崩溃?这很奇怪,因为我使用 3.1.3(我认为是 3.1.2)的 beta 测试人员说该应用程序运行良好。如果无法针对 3.1.2 的基础 SDK 进行编译,它是否应该崩溃?
我认为讨论 4.0 NDA 应该没问题,因为我的问题是针对 3.1.X 的。
首先,本周NDA已经解除,所以讨论iOS 4.0 SDK没有问题。
至于你的问题:编译和运行应用程序之间存在差异。
iOS4 SDK中添加了NSXMLParserDelegate协议。在 SDK 的早期版本中,XML 解析器委托方法是在类别中声明的。在iOS4中,这些方法已转移到专用协议中,这使得它更加干净。在运行时,没有区别。编译后,该应用程序对协议或类别一无所知。 NSXMLParser 将简单地检查是否实现了特定的委托方法(通过响应选择器),所以它会运行得很好。
一般来说,用iOS4 SDK构建并在3.0上运行是没有问题的。您必须确保不调用 3.0 中不存在的任何方法。这很容易通过调用来完成响应选择器。它允许您创建在所有操作系统版本上运行的单个应用程序,但仍然允许您调用 4.0 特定的方法。
我希望这是有道理的 ...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)