2016-11-07 29 views
1

我寫了一個擴展名以從十六進制字符串返回UIColor。雖然它有效,但我不太明白這段代碼的用途關於NSScanner(掃描儀)的混淆

var rgbValue: UInt32 = 0 
Scanner(string: cleanHexStr).scanHexInt32(&rgbValue) 

您能否提供一些見解/詳細的理解?謝謝。

回答

1

第一部分爲字符串cleanHexString創建NSScanner的實例。 (掃描儀「附加」到一個字符串。)

然後scanHexInt32()在此掃描程序上執行以獲取字符串表示的整數值。 rgbValue是一個不合理的論點。 (指向它的指針,C中的out-arguments的技術是什麼Objective-C類。)

+0

那麼它是比較這兩個值嗎? 因此,在從'cleanHexString'創建一個'Scanner'實例後,'scanHexInt32'具體做了什麼? –

+0

正如我所說:它掃描附加的字符串的32位整數值,並返回結果在'rgbValue'。沒有什麼比較。做什麼的? –

+0

因此它掃描'cleanHexStr'爲一個32位整數?例如,如果我輸入字符串「ffffff」,根據Xcode,「rbgValue」的值是** 16777215 **。我不確定這個價值是什麼意思。你能詳細說明一下嗎? –