我有一个解析一些十六进制数据的函数,但是,我必须手动对数据进行子串,并将其转换为字节。以下是我所拥有的:
public func parseHex(hex: String) {
self.address = UInt8(hex.substring(0...4))
}
其中self.address是UInt8字段。我得到的错误是:
参数标签'(_ :)'与任何重载都不匹配
我该如何解决这个问题?
答案 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)))
}