string.utf16.index(string.startIndex, by: offset) という書き方だと (edited)String.Index(encodedOffset: offset) でパラメータがoffsetだけだったのに対して func processEdit(editedNSRange: NSRange, changeInLenght delta: Int) { let editedRange = Range<String.Index>(uncheckedBounds: ( String.Index(encodedOffset: editedNSRange.lowerBound), String.Index(encodedOffset: editedNSRange.upperBound) )) ... public init<S: StringProtocol>(utf16Offset offset: Int, in s: S) { こうなってるな。