、あなたはそのフォントの文字セットを取得する必要があります。たとえば、私は最初のUIFontを取る。
let firsttFont = UIFont.familyNames.first
let first = UIFont(name: firsttFont!, size: 14)
let fontDescriptor = first!.fontDescriptor
let characterSet : NSCharacterSet = fontDescriptor.object(forKey: UIFontDescriptorCharacterSetAttribute) as! NSCharacterSet
すると、そのNSCharacterSetのすべての文字を取得するには、この拡張機能を使用します。
extension NSCharacterSet {
var characters:[String] {
var chars = [String]()
for plane:UInt8 in 0...16 {
if self.hasMemberInPlane(plane) {
let p0 = UInt32(plane) << 16
let p1 = (UInt32(plane) + 1) << 16
for c:UTF32Char in p0..<p1 {
if self.longCharacterIsMember(c) {
var c1 = c.littleEndian
let s = NSString(bytes: &c1, length: 4, encoding: String.Encoding.utf32LittleEndian.rawValue)!
chars.append(String(s))
}
}
}
}
return chars
}
}
(参考:NSArray from NSCharacterset)
だから、最後に、ちょうどすべての文字(中を取得するためにcharacterSet.characters
を呼び出します文字列)
他のソースのコードを使用している場合は、オリジナルへのリンクを追加してください。あなたの拡張メソッドは、http://stackoverflow.com/a/34772440/1187415の逐語的なコピーであるように見えます。これは、http://stackoverflow.com/a/15742659/1187415に基づいています。 –
はい、この拡張機能のオリジナルを追加しました。 –