2010-09-27 63 views

回答

14

這將執行unicode中的前65536個字符,這將適用於大多數情況。我相信unicode可以更高(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樣本。

་.༉༊་་་.་.་.་་.༒་,()()྅

+0

應標記爲我相信答案。 – 2015-03-25 16:48:06

+0

有一個更快的解決方案:http://stackoverflow.com/a/15741737/3050403 – kelin 2015-06-03 06:49:39