2016-06-15 17 views
0

、私はこのコードスニペットを見て:それを初期化中初期化中に変数自体にアクセスできるのはなぜですか? raywenderlichの記事から

// 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() 
} 

は、なぜ我々は、変数(CTX)自体にアクセスすることができますか?前もって感謝します。

答えて

0

ctx = UIGraphicsGetCurrentContext()ステートメントにUIコンテキストオブジェクトへの参照があり、それが失敗した場合(オプション)、if句を入力しません。成功すると、参照は使用できる状態になり、そのプロパティを設定できます。

0

Ah!スウィフトオプションの驚異!これは、実際には、スウィフトセーフラップ解除パターンです。 UIGraphicsGetCurrentContext()がCGContext?を返す方法を参照してください。 ?は、ゼロを返す可能性があることを意味します。オプションです。このif let構造体を使用して、UIGraphicsGetCurrentContext()を変数に安全に展開し、ifスコープ内で安全に使用しましょう。

CGContext is optional

あなたはこのhereについての詳細を読むことができます。

こちらがお役に立てば幸いです。

関連する問題