【问题标题】:Confusion regarding NSScanner (Scanner)关于 NSScanner (Scanner) 的困惑
【发布时间】:2016-11-07 20:39:07
【问题描述】:

我编写了一个扩展来从十六进制字符串返回 UIColor。虽然可行,但我不太明白这段代码的目的

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

您能否对此提供一些见解/详细的理解?谢谢。

【问题讨论】:

    标签: ios swift hex nsscanner


    【解决方案1】:

    第一部分为字符串cleanHexString 创建NSScanner 的实例。 (扫描仪被“附加”到一个字符串上。)

    然后在这个扫描器上执行scanHexInt32() 以获取字符串表示的整数值。 rgbValue 是一个外在的论点。 (指向它的指针被传递,C 中的外参数的技术是什么。NSScanner 是一个Objective-C 类。)

    【讨论】:

    • 那么是比较两个值吗?那么在从cleanHexString 创建Scanner 的实例之后,scanHexInt32 究竟做了什么?
    • 正如我所说:它扫描附加的字符串以查找 32 位整数值,并在 rgbValue 中返回结果。没有什么可以比较的。干什么用的?
    • 所以它会扫描cleanHexStr 寻找一个 32 位整数?例如,如果我输入字符串ffffff,根据Xcode,rbgValue的值是16777215。我不确定这个值是什么意思。你能详细说明一下吗?
    • 是同一个值。 16777215(或其他)是十进制值的表示,ffffff 是十六进制值的表示。 en.wikipedia.org/wiki/Hexadecimal
    猜你喜欢
    • 2019-05-17
    • 2020-03-06
    • 2016-03-16
    • 2013-07-27
    • 1970-01-01
    • 2012-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多