2017-05-18 11 views
0

unicharからCharacterに変換するより良い方法はありますか? は試してみました:unicharを文字に変換するには

var unichar = ... 
let str = NSString(characters: &unichar, length: 1) as String 
let character = Array(str.characters)[0]) 

答えて

1

あなたはunichar変換することができます - >UnicodeScalar - >Character:範囲内の0xD800...0xDFFF (ハイとローのサロゲートを)

let c = unichar(8364) 
if let uc = UnicodeScalar(c) { 
    let char = Character(uc) 
    print(char) // € 
} else { 
    print("illegal input") 
} 

入力値を許可されていない、彼らは 対応しておりませんので有効なUnicodeスカラー値。

これらの入力値は がデフォルトの文字 (例えば疑問符)によって可能に無効な入力値を置き換えるには

let char = Character(UnicodeScalar(c)!) 

への変換を簡素化することができます、あなたが発生しないことが保証されている場合は、使用

let char = Character(UnicodeScalar(c) ?? "?") 
0
public class func stringForIcon(_ icon: NSInteger) -> Character { 
     return Character(UnicodeScalar(icon)!) 
    }