从Swift 2转换为Swift 3(甚至在将edit->转换 - >转换为当前的swift语法之后),我收到了很多错误。特别是:
在我下载此测试版Xcode 8.0并转换为Swift 3之前,我的项目总共显示了90个错误,这在Swift 2中运行良好
这是我正在制造的转换错误吗?
答案 0 :(得分:187)
大多数都是简单的修复,只需点击红色按钮,让Xcode为您修复它!其他包括:
<强>的CGRect 强>
斯威夫特2:
let frame = CGRectMake(0, 0, 20, 20)
斯威夫特3:
let frame = CGRect(x: 0, y: 0, width: 20, height: 20)
<强> CGPoint 强>
斯威夫特2:
let point = CGPointMake(0, 0)
斯威夫特3:
let point = CGPoint(x: 0, y: 0)
<强> CGSize 强>
斯威夫特2:
let size = CGSizeMake(20, 20)
斯威夫特3:
let size = CGSize(width: 20, height: 20)
<强> CGRectGetMidX 强>
斯威夫特2:
CGRectGetMidX(view)
斯威夫特3:
view.midX
<强> CGRectGetMidY 强>
斯威夫特2:
CGRectGetMidY(view)
斯威夫特3:
view.midY
<强>的UIColor 强>
斯威夫特2:
let color = UIColor.redColor()
斯威夫特3:
let color = UIColor.red
<强>&#34; NS&#34; 强>
斯威夫特2:
NSTimer
NSData
NSError
斯威夫特3:
Timer
Data
Error
<强> UserDefaults 强>
斯威夫特2:
NSUserDefaults.standardUserDefaults().//something
斯威夫特3:
UserDefaults.standard.//something
答案 1 :(得分:12)
始终记得使用有用的&#34;修复所有范围&#34;功能可以在编辑器中找到 - &gt;修复范围
中的所有内容答案 2 :(得分:1)
我正在转换一个项目,而Xcode并没有帮助我解决任何问题,所以我采用了几个正则表达式搜索和替换: -
<?xml version="1.0" encoding="UTF-8"?>
<included>
<!-- Debug log -->
<appender name="FILE_DEBUG_KIOSK_PRODUCT"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${debug.kiosk.product.dir}/debug.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${log.home}/${component-name}/${subcomponent-name}/debug.log.%i
</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>10</maxIndex>
</rollingPolicy>
<triggeringPolicy
class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>20MB</maxFileSize>
</triggeringPolicy>
<encoder>
<pattern>${default-log-pattern}</pattern>
</encoder>
</appender>
<logger name="com.product.kiosk.area" level="DEBUG" additivity="false">
<appender-ref ref="FILE_DEBUG_KIOSK_PRODUCT" />
</logger>
</included>
请注意,他们不知道嵌套的括号,但对于90%的情况可能已经足够了。