wake-up-neo.com

Schwierigkeiten beim Konvertieren nach Swift 3

Nach dem Konvertieren von Swift 2 zu Swift 3 (auch nach dem Konvertieren von edit-> convert -> to current Swift syntax) Ich erhalte viele Fehler, insbesondere:

this

Mir werden insgesamt 90 Fehler für mein Projekt angezeigt, die in Swift 2 einwandfrei funktionierten, bevor ich diesen Beta Xcode 8.0 heruntergeladen und in Swift 3 konvertiert habe

Ist das ein Konvertierungsfehler, den ich mache?

48
niravdesai21

Bei den meisten handelt es sich um einfache Korrekturen, indem Sie einfach auf den roten Knopf tippen und Xcode für Sie reparieren lassen! Andere sind:

CGRect

Swift 2:

let frame = CGRectMake(0, 0, 20, 20)

Swift 3:

let frame = CGRect(x: 0, y: 0, width: 20, height: 20)

CGPoint

Swift 2:

let point = CGPointMake(0, 0)

Swift 3:

let point = CGPoint(x: 0, y: 0)

CGSize

Swift 2:

let size = CGSizeMake(20, 20)

Swift 3:

let size = CGSize(width: 20, height: 20)

CGRectGetMidX

Swift 2:

CGRectGetMidX(view)

Swift 3:

view.midX

CGRectGetMidY

Swift 2:

CGRectGetMidY(view)

Swift 3:

view.midY

IColor

Swift 2:

let color = UIColor.redColor()

Swift 3:

let color = UIColor.red

"NS"

Swift 2:

NSTimer
NSData
NSError

Swift 3:

Timer
Data
Error

serDefaults

Swift 2:

NSUserDefaults.standardUserDefaults().//something

Swift 3:

UserDefaults.standard.//something
187
Pranav Wadhwa

Und denken Sie immer daran, die hilfreiche Funktion "Fix all in Scope" zu verwenden, die Sie unter Editor -> Fix all in Scope finden

12
Sierra101

Ich habe ein Projekt konvertiert und Xcode hat mir bei der Behebung von Problemen nicht geholfen. Deshalb habe ich ein paar reguläre Suchen und Ersetzen-Aktionen durchgeführt:

CGPointMake\((.*),[ ]*([^\)]+)\)
CGPoint(x:$1, y:$2)

CGSizeMake\((.*),[ ]*([^\)]+)\)
CGSize(width:$1, height:$2)

Beachten Sie, dass sie keine geschachtelten Klammern kennen, aber wahrscheinlich in 90% der Fälle gut genug sind.

1
Echelon