swift - 从解析的子字符串中快速转换为字节

标签 swift substring

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

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/

相关文章:

c - 如何在 C 中有效地从句子中提取单词?

mysql选择子串并按列分组

java - Java中的子字符串替换

ios - append 和 addObject + 比较两个日期有什么区别

ios - AudioKit:如何更改使用 AKMIDIEvent 播放的音符的音量或音调?

ios - AVPlayerViewController 周围的奇怪边框

python - PYTHON 中的递归可实现所有可能的排列而不重复

javascript - 用js统计字符串中<span>的字符数

iOS 画外音 - 检测转子是否启用了垂直导航?

ios - AVPlayerLayer 框架不适合视频播放器的 UIView