从解析后的子串swift到字节

时间:2017-03-20 17:52:44

标签: swift substring

我有一个解析一些十六进制数据的函数,但是,我必须手动对数据进行子串,并将其转换为字节。以下是我所拥有的:

public func parseHex(hex: String) {
    self.address = UInt8(hex.substring(0...4))
}

其中self.address是UInt8字段。我得到的错误是:

  

参数标签'(_ :)'与任何重载都不匹配

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

正如@Hamish所说,您应该使用Collection扩展方法:public func prefix(_ maxLength: Int) -> Self.SubSequence

func parse(hexString: String) {
    self.address = UInt8(hexString.characters.prefix(4))
}

作为替代方案,可以使用桥接到NSString并使用NSRange(但第一种情况肯定更好):

func parse(hexString: String) {
    let hexNSString = hexString as NSString
    self.address = UInt8(hexNSString.substring(with: NSRange(location: 0, length: 4)))
}