2016-06-15 7 views
0

Aus raywenderlich Artikel, habe ich diesen Code-Schnipsel:Warum können wir während der Initialisierung auf die Variable selbst zugreifen?

// new way, Swift 3 
if let ctx = UIGraphicsGetCurrentContext() { 

    let rectangle = CGRect(x: 0, y: 0, width: 512, height: 512) 
    ctx.setFillColor(UIColor.blue().cgColor) 
    ctx.setStrokeColor(UIColor.white().cgColor) 
    ctx.setLineWidth(10) 
    ctx.addRect(rectangle) 
    ctx.drawPath(using: .fillStroke) 

    UIGraphicsEndImageContext() 
} 

Warum können wir die Variable (CTX) selbst zugreifen, während es zu initialisieren? Danke im Voraus.

Antwort

0

Die ctx = UIGraphicsGetCurrentContext()-Anweisung hat einen Verweis auf das UI-Kontextobjekt, und wenn dies fehlschlägt (da es optional ist), geben Sie die if-Klausel nicht ein. Wenn es erfolgreich ist, ist die Referenz bereit zur Verwendung und ihre Eigenschaften können eingestellt werden.

0

Ah! Die Wunder von Swift Optionals! Dies ist eigentlich ein schnelles Safe-Unwrap-Muster. Sehen Sie, wie UIGraphicsGetCurrentContext() eine CGContext? zurückgibt? Die ? bedeutet, dass es eine Null zurückgeben kann, ist es optional. Mit dieser if let Struktur können Sie UIGraphicsGetCurrentContext() sicher in eine Variable entpacken und sicher innerhalb des if Bereichs verwenden.

CGContext is optional

Sie können mehr über diese here lesen.

Ich hoffe, das hilft!

Verwandte Themen