我创建了一个使用基本SDK OS X 10.10的cocoa应用程序。调用仅存在于10.10中的一些API。因此它在版本低于10.10的系统中无法正常运行。
所以,我不知道有什么方法可以让我的应用程序在OS X 10.9中正确运行,除了重写它使用较低的SDK。如果没有,这些新API的价值是什么。因为我不能用它如果我使用它,应用程序无法在较低的系统中工作。
谢谢!
答案 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
来了解您尝试使用的类/方法是否在当前操作系统上可用,并且优雅地降级(例如,仅在你在最新的操作系统上运行。