- (NSInteger)countStrWithEmoji:(NSString*)str {

    

    __block NSInteger cnt = 0;

    

    [str enumerateSubstringsInRange:NSMakeRange(0, [str length]) options:NSStringEnumerationByComposedCharacterSequences usingBlock:

     ^(NSString* substring, NSRange substringRange, NSRange enclosingRange, BOOL* stop){

         

         const unichar high = [substring characterAtIndex: 0];

         

         // surrogate pair

         if (0xd800 <= high && high <= 0xdbff) {

             cnt++;

             

             // not surrogate pair

         } else {

             cnt++;

         }

     }];

    

    return cnt;

}



Posted by tenn
,