2016-11-07 117 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 **。我不确定这个价值是什么意思。你能详细说明一下吗? –