2014-10-28 2 views
1

NSCharacterSet에 어떤 문자가 포함되어 있는지 어떻게 알 수 있습니까? Apple Docs에는 어떤 종류의 문자가 특정 세트에 있는지에 대한 "비공식적 인"정의가 있지만 정확한 목록을 찾고 있습니다. 문서에는 Unicode Standard Homepage에 대한 링크가 있지만 문서는 Marks Category과 같은 것으로 참조되며 유니 코드 페이지는 완전히 누락되지 않는 한 실제로 강조 표시하지 않습니다.NSCharacterSet의 문자 목록

답변

9

이 질문은 answered here입니다.

그러나 게시물에 대해 선택한 "올바른"대답은 871자를 돌려줍니다. This other answer on that same post offers up a solution that grabs all 1472 characters :

NSCharacterSet *charset = [NSCharacterSet uppercaseLetterCharacterSet]; 
     NSMutableArray *array = [NSMutableArray array]; 
     for (int plane = 0; plane <= 16; plane++) { 
      if ([charset hasMemberInPlane:plane]) { 
       UTF32Char c; 
       for (c = plane << 16; c < (plane+1) << 16; c++) { 
        if ([charset longCharacterIsMember:c]) { 
         UTF32Char c1 = OSSwapHostToLittleInt32(c); // To make it byte-order safe 
         NSString *s = [[NSString alloc] initWithBytes:&c1 length:4 encoding:NSUTF32LittleEndianStringEncoding]; 
         [array addObject:s]; 
        } 
       } 
      } 
     } 

그리고이 방법은 값을 계산하는 방법을 강제로 짐승을 사용하는 게시물에 허용 대답과는 달리, 미친 듯이 프로세서가 집중되지 않는 이점이 있습니다.

희망이 도움이됩니다.

+0

내가 게시 한 첫 번째 접근 방식은 제한된 문자 집합을 제공하고 목록을 렌더링하기 위해 CPU를 잠그는 반면, 업데이트 된 응답은 1472자를 모두 제공한다는 것을 깨닫고 엄청난 변화를 만들었지 만 그 과정에서 CPU를 죽이십시오. – radiovisual

관련 문제