2014-06-08 21 views
8

Ben de zaten kılavuzunu okuyun ama nasıl String tamsayı ile temsil Unicode kod noktası dönüştürmek bulamıyorum buSwift'de bir tam sayı ile temsil edilen Unicode kod noktasını nasıl alabilirim?

for character in strings.utf8 { 
    // for example A will converted to 65 
    var utf8Value = character 
} 

gibi utf8 biçimine Dize dönüştürmek için biliyorum. Örneğin: 65’i A’ya dönüştürme. "\ U" + utf8Value’yi kullanmaya çalıştım ancak yine de başarısız oldu.

Bunu yapmanın bir yolu var mı?

init(_ v: UInt32) 

Biz can: Biz daha sonra yapı UnicodeScalar bakarsak, bu başlatıcı bkz

init(_ scalar: UnicodeScalar) 

: Eğer Character için enum tanımı bakarsak

+0

, Tek bir UTF8 bayt her zaman bir karakter değildir. 'A' olması durumunda, 'ñ' ya da 'ö' söz konusu olduğunda ... bu soru, bir tamsayı olarak temsil edilen bir unicode kod noktasını bir Karaktere dönüştürmek olmalıdır. – Michael

+0

Michael'a işaret ettiğin için teşekkürler, zaten –

cevap

11

aşağıdaki başlatıcı görebilirsiniz Onları bir araya getirdik ve tüm karakterleri

Character(UnicodeScalar(65)) 

Biz dizede istiyorum ve eğer o

1> String(Character(UnicodeScalar(65))) 
$R1: String = "A" 

Ya da ... sadece başka başlatıcı uzakta yapabileceğiniz (bu işleri neden çözemiyorum rağmen)

biliyor
String(UnicodeScalar(65)) 
+0

sorumu düzenledim, bunu hiç fark etmedim, teşekkürler cobbal! –

+0

Son durumda olduğu gibi: 'String (UnicodeScalar (65))' 'çalışmak için kullanılan ancak şimdi' String (UnicodeScalar (65) 'i tanımlayan) 'olacaktır. Bu, bu başlatıcının "UnicodeScalar" ı "CustomStringConvertible" olarak ele aldığını ve sonunda "kendi-tabiri" ni sorduğunu gösterir. – ctietze