swift StringのNSRange変换のSwift 3用于扩展(4になったら定义消すだけで利用箇所はそのまま动くはず)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了swift StringのNSRange変换のSwift 3用于扩展(4になったら定义消すだけで利用箇所はそのまま动くはず)相关的知识,希望对你有一定的参考价值。

import Foundation

extension NSRange {
    /// Swift 3まで用(4になったら消した方が良い)
    /// `Range<String.Index>`は4では[RangeExpression](https://developer.apple.com/documentation/swift/rangeexpression)
    /// だが3ではないので適当に書き換え
    init(_ range: Range<String.Index>, in string: StringLiteralType) {
        let utf16 = string.utf16
        let from = range.lowerBound.samePosition(in: utf16)
        let to = range.upperBound.samePosition(in: utf16)
        self.init(location: utf16.distance(from: utf16.startIndex, to: from),
                  length: utf16.distance(from: from, to: to))
    }
}

let x = "( ´・‿・`)"
// UIKitなどのNSRangeを要求するAPIに渡せる(4ではこのイニシャライザーが標準で提供されている)
NSRange(x.range(of: "‿")!, in: x)

以上是关于swift StringのNSRange変换のSwift 3用于扩展(4になったら定义消すだけで利用箇所はそのまま动くはず)的主要内容,如果未能解决你的问题,请参考以下文章

Python语音合成(日文翻译)

python 声质変换のGMMを学习する

swift string.nsrange.swift

php 角度の度分秒を変换する

python HSVへの変换と青色の検出

sql [SQLServer]日付の文字列変换(CONVERT,111,108,120)