How to Traversal emojis in NSString There is a NSString method used to traversal substring of NSString
NSString *text = @\"2012
I'm not a unicode expert, but I believe the problem here is that the flags are actually two characters. They're regional indicator symbols. The american flag, for example, is two distinct characters: REGIONAL INDICATOR SYMBOL LETTER U and REGIONAL INDICATOR SYMBOL LETTER S.
http://en.wikipedia.org/wiki/Regional_Indicator_Symbol
You might have luck asking the text input system to do the tokenization for you, as it seems to understand (when deleting, for example) that they should be treated as one unit. Try using the UITextInputTokenizer method positionFromPosition:toBoundary:inDirection: to move from the end of the string to the previous character (ie pass UITextGranularityCharacter). You can get a tokenizer from a UITextView or UITextArea's tokenizer method.
Hope that helps!