是否有任何方法可以使使用基本SDK 10.10的cocoa应用程序可以在OS X 10.9中正确运行

时间:2014-11-21 12:33:04

标签: objective-c macos cocoa

我创建了一个使用基本SDK OS X 10.10的cocoa应用程序。调用仅存在于10.10中的一些API。因此它在版本低于10.10的系统中无法正常运行。

所以,我不知道有什么方法可以让我的应用程序在OS X 10.9中正确运行,除了重写它使用较低的SDK。如果没有,这些新API的价值是什么。因为我不能用它如果我使用它,应用程序无法在较低的系统中工作。

谢谢!

3 个答案:

答案 0 :(得分:0)

不,你必须重写它才能使用10.9中提供的API调用。

添加对API的新调用的重点是因为最终每个人都将拥有运行新软件的设备 - 特别是使用Apple产品 - 然后您就可以使用它了。此外,有些人不介意无法在旧设备上运行。如果他们从未在API中添加任何内容,那么我们仍然会使用20年前的相同内容。

如果您认为这很糟糕,请尝试为Android编写软件。 The majority of devices are still running old API versions.

答案 1 :(得分:0)

基本上答案是否定的。你不能创建一个使用最新的API 10.9在10.9中运行的应用程序。

使用最新API的价值取决于您想要实现的目标。如果您想利用最新的Apple技术,如iCloud Drive和CloudKit,那么您需要10.10。但是,如果您的项目不需要这些技术,则可能需要使用较低的SDK来制作您的应用程序。

值得注意的是OS X 10.10是免费的,因此您可能不会通过使用最新的SDK疏远任何人。对于iOS而言,这是一个不同的故事,通常只有最新的几款iPhone和iPad型号可以升级(例如iPhone 4S及更高版本的iOS 8)。

希望这有帮助。

答案 2 :(得分:0)

您应该使用10.10作为您的Base SDK,并将您的部署平台设置为10.9。然后,您可以使用respondsToSelector:NSClassFromString来了解您尝试使用的类/方法是否在当前操作系统上可用,并且优雅地降级(例如,仅在你在最新的操作系统上运行。