在Xcode中,为什么特定的部署目标会破坏我的代码,我该如何使用它?

时间:2014-11-29 09:43:39

标签: ios xcode swift deployment-target

一些背景信息:语法颜色/突出显示和自动建议停止正常工作。我读了很多关于如何解决这个问题的问题,但没有一个问题对我有帮助,因为它们与派生数据有关。

我从一些在线教程中学习Swift,并注意到我的语法突出显示与课程教师的语法不同。然后我注意到,当我创建我的struct的实例,并在实例后使用点语法时,Xcode没有自动建议结构的函数和变量,而它在下载的版本中执行项目。经过一番调查后,我发现我的项目和老师之间的一个关键区别是我的项目的部署目标是8.1,而老师的项目是8.0。我将我改为8.0并立即恢复了语法高亮,我可以访问struct实例的函数和变量。

我猜这可能是Xcode中的一个错误,但也许我在Xcode中有错误的配置?如果有人能解释这个错误是如何/为何发生以及选择部署目标时的最佳做法,我将不胜感激。

该设置位于Project>一般>部署信息

我希望以上信息可以帮助遇到此问题的其他人。

1 个答案:

答案 0 :(得分:2)

部署目标是您的应用所针对的iOS版本。这并不意味着它与其他版本不兼容,只是它被设计为在该版本上运行得最好。通常,在具有较新版本操作系统的设备上使用应用程序比在具有较旧版本操作系统的设备上使用应用程序更安全且更不可能。实际上在安装部署目标高于手机操作系统版本的应用程序方面存在很多限制。

目前最常见的部署目标是7.x,因为大多数应用程序在iOS 7首次出现时进行了更新(UI标准和SDK功能从6到7发生了很大的变化)和iOS 8与7并没有太大的不同,因此不需要为新SDK限制和/或编写新版本的应用程序。通过使部署目标为7.x,您应该确保该应用程序在7.x和所有更高版本(包括8.x)上运行良好。您还应该拥有合理的最低部署目标 - 因此,纯粹的iOS 8应用程序最好是针对iOS 8.0。您将为不了解版本控制的用户节省大量PR和无效错误报告。

在您的场景中,听起来在使用iOS 8.1部署目标时Xcode中可能存在错误。您可能需要检查并查看是否下载了文档。转到Xcode - >偏好 - >下载并确保下载所有内容。我不确定这些是否实际用于语法高亮和完成代码,但它是可能的。我也会清理build文件夹(Product - > Hold Alt - > Clean Build Folder)。再说一遍,我不确定,但我认为只有一些小东西没有点击这里。我假设您根据第一段清除了派生数据 - 如果没有,请执行此操作(窗口 - >管理器 - >选择项目 - >删除)。