Это будет делать первые 65536 символов в юникоде, что подходит для большинства ситуаций.Я считаю, что Юникод может пойти намного выше (2 ^ 32?), Но это заняло бы намного больше времени для регистрации.
+ (void) logCharacterSet:(NSCharacterSet*)characterSet
{
unichar unicharBuffer[20];
int index = 0;
for (unichar uc = 0; uc < (0xFFFF); uc ++)
{
if ([characterSet characterIsMember:uc])
{
unicharBuffer[index] = uc;
index ++;
if (index == 20)
{
NSString * characters = [NSString stringWithCharacters:unicharBuffer length:index];
NSLog(@"%@", characters);
index = 0;
}
}
}
if (index != 0)
{
NSString * characters = [NSString stringWithCharacters:unicharBuffer length:index];
NSLog(@"%@", characters);
}
}
Есть некоторые довольно забавные результаты, например, здесь пример из 20 символов изpunctuationCharacterSet
.
100 * ༐ * ༅ 100 100 100 100 100