我有一个解析一些十六进制数据的函数,但是,我必须手动对数据进行子串并将其转换为字节。以下是我所拥有的:
public func parseHex(hex: String) {
self.address = UInt8(hex.substring(0...4))
}
其中 self.address 是 UInt8 字段。我收到的错误是:
Argument labels '(_:)' do not match any overloads
我该如何解决这个问题?
最佳答案
正如@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)))
}
关于swift - 从解析的子字符串中快速转换为字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42910625/