这听起来可能是一个新手问题,但是我是 Mac OS 的新手,
在这里,我有一个使用旧 Base SDK 编译的应用程序,比如说 10.5 版本,它在 Mac OS 10.5 版本上运行没有任何问题。
在最新版本的 Mac OS 10.6、10.7 上,它在某些情况下无法正常工作。
旧应用程序应该在新版本的操作系统中保持兼容,基本上我想知道苹果如何在新版本的 Mac OS 中保持与旧应用程序的兼容性?
这听起来可能是一个新手问题,但是我是 Mac OS 的新手,
在这里,我有一个使用旧 Base SDK 编译的应用程序,比如说 10.5 版本,它在 Mac OS 10.5 版本上运行没有任何问题。
在最新版本的 Mac OS 10.6、10.7 上,它在某些情况下无法正常工作。
旧应用程序应该在新版本的操作系统中保持兼容,基本上我想知道苹果如何在新版本的 Mac OS 中保持与旧应用程序的兼容性?
Apple 通常会非常小心地确保其 API 的向后兼容性,以便在升级操作系统时旧应用程序不会中断。他们不会删除 APIS,只是将它们标记为已弃用。
很可能您的应用程序正在做一些不受支持的事情,或者由于 Apple 更改了其 API 的实现而暴露了其中的错误。
一些可能的原因在我脑海中浮现
int
API 需要 NSInteger 的地方)。尝试使用当前 Xcode 针对最新 API 重新编译您的应用程序,打开-Wall
警告标志并启用静态分析器。这将告诉您在哪里使用了已弃用的 API、关于参数和返回类型的错误假设以及许多其他问题。