iOS 10 和 swift 3 转换问题

iOS 10 and swift 3 conversion questions

这是我第一次真正遇到将我的代码更新到 iOS 的新版本和主要代码更改,例如 Swift 3. 我想获得一些关于良好实践和关于这些主题的标准程序。

首先,我是否应该等到 Xcode 8 完全发布后再尝试将我的代码转换为 Swift 3?似乎随着测试版的继续,代码转换功能变得更加智能和准确。另外,在测试版内部编辑是否安全 IDE?

其次,我的应用程序在 iOS 9 上运行良好,并且运行良好。然而,在 iOS 10 上,UI 元素正在运行(改变位置,而不是更新)并冻结在 iOS 9 中不明显的特定位置。这是由于变化吗在将在 iOS 10 中更新的函数名称中?此外,这些错误中的一些会 "fix themselves" 随着 beta 的理顺吗?

感谢您的帮助!

该建议在很大程度上与所有 Xcode 测试版相同:将 Xcode(尤其是 Swift 3)的测试版视为 "sandbox",您可以在其中可以播放,但不要转换制作项目。或者,更准确地说,随意转换它,以便您可以在沙盒中玩游戏,这样您就可以为 Swift 3 结束测试版做好准备,但这样做时要知道当前的测试版 Swift 3可能会发生进一步的变化。确保保留现有作品 code/projects 直到 Xcode 8 结束测试版)。永远不要计划能够在 Xcode 7.x 中打开 Swift 3 项目。保持 Swift 3 代码和原始 Swift 2.x 项目完全隔离。

关于 iOS 10 上的 iOS 9 应用程序,我很惊讶你发现 iOS 9 应用程序存在问题(尤其是 iOS 10 beta 7),因为这些问题中的大部分现在已经解决了。如果有什么地方不能正常工作,那就有点边缘情况了,因为大多数写得很好的 iOS 9 代码可以与 iOS 10 无缝地工作。有 API 的变化,但是一个应用程序为 iOS 9 构建的通常在 iOS 10 设备上运行良好。很少有事情会导致您描述的那种视觉效果 artifacts/errors。您遇到了问题,您应该 post 一个新问题,并用 MCVE 说明问题。

鉴于你的问题,我会指出一些我遇到的事情。我会保留原始格式的 Swift 2.2 代码的副本,这看起来很明显,但它对我有帮助,所以我将它放在那里。我遇到的一个具体问题是 "Thread 1: signal SIGABRT" 运行 我的转换代码。我刚刚在故事板中删除了我的对象连接,在本例中是一个 UIButton 对象,在转换之后,重新构造它们并且错误消失了。我仍在努力转换代码,所以当我找到并修复它时,我会添加到我的 posts 中。我建议如果您在进行转换时得到一些具体的信息,只需问一个不同的问题并 post 它。它让事情变得简单。