-1

这听起来可能是一个新手问题,但是我是 Mac OS 的新手,

在这里,我有一个使用旧 Base SDK 编译的应用程序,比如说 10.5 版本,它在 Mac OS 10.5 版本上运行没有任何问题。

在最新版本的 Mac OS 10.6、10.7 上,它在某些情况下无法正常工作。

旧应用程序应该在新版本的操作系统中保持兼容,基本上我想知道苹果如何在新版本的 Mac OS 中保持与旧应用程序的兼容性?

4

1 回答 1

0

Apple 通常会非常小心地确保其 API 的向后兼容性,以便在升级操作系统时旧应用程序不会中断。他们不会删除 APIS,只是将它们标记为已弃用。

很可能您的应用程序正在做一些不受支持的事情,或者由于 Apple 更改了其 API 的实现而暴露了其中的错误。

一些可能的原因在我脑海中浮现

  • 您的应用使用已更改的 Apple 私有 API。
  • 您的应用程序将一些无效参数传递给其实现已更改的 API(一个示例可能是使用intAPI 需要 NSInteger 的地方)。
  • 您的应用无意中利用了一个现已解决的错误(例如,垃圾收集和 NSOperationQueues 存在于 10.5 中,但在很大程度上是 beta 版)。

尝试使用当前 Xcode 针对最新 API 重新编译您的应用程序,打开-Wall警告标志并启用静态分析器。这将告诉您在哪里使用了已弃用的 API、关于参数和返回类型的错误假设以及许多其他问题。

于 2012-04-25T14:35:02.297 回答