2016-08-22 98 views
3

这是我第一次将我的代码更新为新版本的iOS和主要代码更改(如Swift 3)的第一次真实邂逅。我想获得一些关于良好实践和标准过程的信息,关心这些话题。iOS 10和swift 3转换问题

首先,我是否应该等到Xcode 8完全发布之后再尝试将我的代码转换为Swift 3?看起来随着测试版的发展,代码转换功能变得更加智能和准确。另外,在beta版IDE中编辑是否安全?其次,我的应用程序在iOS 9上运行良好,功能完美。但是,在iOS 10上,UI元素正在发生变化(更改位置,而不是更新),并冻结在iOS 9中不明显的特定位置。这是由于iOS 10中将更新的函数名称的更改吗?此外,这些错误会在贝塔斯理顺时“修复自己”吗?

感谢您的帮助!

回答

1

该建议与所有Xcode测试版本大致相同:将Xcode(esp Swift 3)的测试版视为您可以玩的“沙盒”,但不要转换生产项目。或者,更准确地说,随意转换它,这样你就可以在沙箱中玩,这样当Swift 3出来测试时你就可以做好准备,但是知道当前的测试版Swift 3会有进一步的变化。确保你保留你现有的生产代码/项目,直到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设备上正常运行。有很少的东西会导致你描述的那些视觉工件/错误。你有问题,你应该发布一个新的问题,并说明问题MCVE

+0

感谢您的回答!这有助于为我清除一些事情。然而,另一个问题是,如何在不转换为Swift 3的情况下在iOS 10中测试我的应用程序(同时查看错误代码和堆栈跟踪)? –

+0

您可以通过各种不同的方式在iOS 10设备上从Xcode 7安装应用程序,例如, http://stackoverflow.com/a/35044362/1271826。但是,我认为你已经做到了这一点......你是如何得出这些UI控件在iOS 10上行事的? – Rob

+0

我有我的iPhone上的iOS 10测试版,我通过Xcode中的设备安装应用程序 –

0

鉴于你的问题,我会指出我遇到的一些事情。我会保留原始格式的Swift 2.2代码的副本,这可能看起来很明显,但它帮助我,所以我把它放在那里。我遇到的一个特定问题是运行我的转换代码的“线程1:信号SIGABRT”。我刚刚在故事板中删除了我的对象连接,在这种情况下是一个UIButton对象,在转换之后,重新组合它们,错误消失。我仍然在努力转换代码,所以当我找到某些东西并修复它时,我会将其添加到我的帖子中。我会建议,如果你在做转换时得到了一些具体的内容,只需提出一个不同的问题并发布即可。它使事情变得简单。