转换为Swift 3

时间:2016-06-21 14:15:25

标签: swift swift3 xcode8 ios10

从Swift 2转换为Swift 3(甚至在将edit->转换 - >转换为当前的swift语法之后),我收到了很多错误。特别是:

this

在我下载此测试版Xcode 8.0并转换为Swift 3之前,我的项目总共显示了90个错误,这在Swift 2中运行良好

这是我正在制造的转换错误吗?

3 个答案:

答案 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%的情况可能已经足够了。