Представьте, что у вас есть экземпляр типа Swift Character
, и вы хотите определить, является ли он членом NSCharacterSet
. NSCharacterSet
characterIsMember
принимает значение unichar
, поэтому нам нужно получить от Character
до unichar
.
Единственное решение, которое я мог бы придумать, следующее: где c
- мой Character
:
let u: unichar = ("\(c)" as NSString).characterAtIndex(0)
if characterSet.characterIsMember(u) {
dude.abide()
}
Я посмотрел на Character
, но ничего не выскользнуло на меня как способ получить от него до unichar
. Это может быть связано с тем, что Character
более общий, чем unichar
, поэтому прямое преобразование не будет безопасным, но я только предполагаю.
Если бы я повторял целую строку, я бы сделал что-то вроде этого:
let s = myString as NSString
for i in 0..<countElements(myString) {
let u = s.characterAtIndex(i)
if characterSet.characterIsMember(u) {
dude.abide()
}
}
(Предупреждение: вышеперечисленное является псевдокодом и никогда не управляется кем-либо когда-либо). Но на самом деле это не то, о чем я прошу.