2010-03-05 38 views
3

我正在处理为iPhone OS 2.0设计的旧代码。在这段代码中,我有一些我们在iPhone 3.0上不推荐使用的说明。Iphone - 弃用的功能...他们会崩溃的iPhone?

我不愿意改变的版本,因为我有很多客户,特别是在iPod Touch,仍在使用2.0。如果我更新说明,他们将无法继续接收更新。

该应用程序已编译为2.0,并且始终如此。

我已经提交了新版本的苹果,其中一些错误得到了纠正,并加入新的功能。我一直把这个应用程序发送给苹果,他们从不抱怨。现在他们拒绝了这个应用程序,告诉我它在OS 3.1.3下崩溃了。

我跟着他们的指示,但我没有看到任何崩溃,并使用了“过时”的功能完美的作品3.1.3代码的一部分。

编译项目3.1.3,我看到的Xcode黄色预警,告诉我,一个指令是不推荐3.1.3。

最大的问题是:此指令是否适用于3.1.3,我应该忽略此警告吗? 这可能会导致iPhone崩溃吗?

在我的印象中,iPhone OS所有新版本不断回与旧版本兼容,所以,我认为,编为2.0的任何应用程序将在3.1.3和所有版本运行起来。

正如你所看到的,我已经在3.1.3上进行了测试,并且该应用程序完美工作。

这怎么可能?有任何想法吗?

感谢您的任何帮助。

回答

2

过时的电话都设计在了操作系统版本,他们被废弃在工作,但停在一些(不确定)未来操作系统的工作。弃用是对开发者的警告:嘿,你应该改变你的代码,这将在未来破裂。这是一种更新基于API的方式而不会破坏每个人。

总之,您现在可以使用这些调用,但是如果您决定放弃2.x可操作性,则需要编辑代码。

+0

谢谢。是否可以设计一种测试来查看哪个版本正在运行,并在OS> =版本的情况下执行备用更新指令?如何做到这一点? – SpaceDog 2010-03-05 02:18:22

+2

'if([object respondsToSelector:@selector(newMethod)]){[object newMethod];} else {[object deprecatedMethod];}' – executor21 2010-03-05 02:45:41

+0

thanks !!!!!!!!!! – SpaceDog 2010-03-05 03:07:27