2016-03-10 44 views
0

我必須檢查給定的NSString中的每個字符的某些條件。[NSString substringWithRange]中的錯誤如果字符是4字節長度的UTF8?

當字符串包含將以4字節表示的字符時(UTF-8編碼),結果不是我期望的字符。

NSString* oneCharString = [@"" substringWithRange:NSMakeRange(0, 1)]; 

調試器顯示:

enter image description here

它看起來像一個空字符串。但檢查顯示了一些價值(可能是非性格的象徵?)。

回答

1

如果你想獲得一個字符串的第一個字符,你需要做的是這樣的:

NSString *str = ... // the string such as @"" 
NSRange firstRange = [str rangeOfComposedCharacterSequenceAtIndex:0]; 
NSString *oneCharString = [str substringFromRange:firstRange]; 

此代碼組成的字符正確的交易。