Если вы хотите подписаться на String.unicodeScalars
вместо самого String
, объявите свой добавочный номер на String.UnicodeScalarView
вместо String
.
extension String.UnicodeScalarView {
var length: Int {
return count
}
subscript (i: Int) -> String {
return self[i ..< i + 1]
}
func substring(fromIndex: Int) -> String {
return self[Swift.min(fromIndex, length) ..< length]
}
func substring(toIndex: Int) -> String {
return self[0 ..< Swift.max(0, toIndex)]
}
subscript (r: Range<Int>) -> String {
let range = Range(uncheckedBounds: (lower: Swift.max(0, Swift.min(length, r.lowerBound)),
upper: Swift.min(length, Swift.max(0, r.upperBound))))
let start = index(startIndex, offsetBy: range.lowerBound)
let end = index(start, offsetBy: range.upperBound - range.lowerBound)
return String(self[start ..< end])
}
}
А потом просто сделать
var test1 = "دب"
var test2 = "دُبْ"
test1.unicodeScalars[1] // "ب"
test2.unicodeScalars[1] // "ُ "
С MVC jQuery был бы предпочтительным вариантом (IMO). Это имеет intellisense в VS2008, и очень широко используется, настолько легкое получить образцы, и довольно хорошо зарегистрированный.
Вы могли бы также интересоваться: