Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 如何在Apple Swift中编写一个应用程序,以便在较早的OS X版本(如OS X 10.6)和最新版本上运行?_Objective C_Swift - Fatal编程技术网

Objective c 如何在Apple Swift中编写一个应用程序,以便在较早的OS X版本(如OS X 10.6)和最新版本上运行?

Objective c 如何在Apple Swift中编写一个应用程序,以便在较早的OS X版本(如OS X 10.6)和最新版本上运行?,objective-c,swift,Objective C,Swift,我在网上做了一些研究,注意到你用apple swift语言编写的应用程序只能在OS X 10.9及更高版本上运行 为了使应用程序能够在早期版本的OSX(如10.6)上运行,你必须用objective C编写它们 这篇苹果文档表明,你可以编写一个同时包含Swift和Objective C的应用程序。我想知道是否有人从事过类似的项目,如果是,你是如何决定在Swift中编写哪一部分,以及在Objective C中编写哪一部分,以使应用程序在早期版本的OS x上运行的 换句话说,是什么让swift语言不

我在网上做了一些研究,注意到你用apple swift语言编写的应用程序只能在OS X 10.9及更高版本上运行

为了使应用程序能够在早期版本的OSX(如10.6)上运行,你必须用objective C编写它们

这篇苹果文档表明,你可以编写一个同时包含Swift和Objective C的应用程序。我想知道是否有人从事过类似的项目,如果是,你是如何决定在Swift中编写哪一部分,以及在Objective C中编写哪一部分,以使应用程序在早期版本的OS x上运行的

换句话说,是什么让swift语言不能在早期版本的OSX上工作?我想尽量减少在应用程序中使用objective C,主要使用Swift,同时能够在较早版本的OS X上运行该应用程序


如有任何想法和建议,将不胜感激

根据Apple Swift博客,Mavericks是最低版本:

简单地说,如果你今天编写了一个Swift应用程序,并在今年秋天iOS 8和OS X Yosemite发布时将其提交到应用商店,你可以相信你的应用程序在未来会运行良好。 事实上,你可以用同样的应用程序将目标锁定在OSXMavericks或iOS7上


如果您希望它在OSX的早期版本上运行,那么只需在Objective-C中编写它

您需要将运行时库与swift代码捆绑在一起,该库在10.9之前的版本上无法正常工作,并且通常会崩溃


此外,如果您试图用swift代码瞄准OSX的早期版本,它将拒绝编译。

谢谢@rckoenes。我注意到,当你用Swift编写整个应用程序时,情况就是这样。但是如果你把瓶颈写在objective C中,其余的写在Swift中呢?你能这样绕过这个限制吗?不行,因为你的应用程序附带的Swift库需要运行Swift应用程序,与旧版本的OSX基础库不兼容。再次感谢@ RCKENEES。<代码>如何在Apple Swift中编写一个应用程序来处理早期的OS X版本,如OS X 10.6以及最新的版本。<代码>您不必。<代码>是什么让swift语言无法在早期版本的OS X上工作?全部:)它编译成(几乎)相同的位代码并使用Objc运行时,但他们在OS X 10.9的运行时中添加了一些标志和其他内容。10.10 iOS 7和iOS 8使Swift工作。