次のコード行を使用して、NSString の各文字を取得しようとしています。
NSArray *array = [string componentsSeparatedByString:@""];
//string is equal to Jake
NSLog(@"Array Count:%d",[array count]);
「Jake」という単語の各文字を取得することを期待していますが、代わりに単語全体を取得しています。なんで?
この方法に関するAppleのドキュメントから
NSString *list = @"Norman, Stanley, Fletcher";
NSArray *listItems = [list componentsSeparatedByString:@", "];
produces an array { @"Norman", @"Stanley", @"Fletcher" }.
したがって、空のセパレーターは文字列の各文字を区切らないため、このメソッドはこのようには機能しません。
ここにあなたの質問に対する答えがあります
文字列を何も区切らないという考えは、論理的には意味がありません。ゼロで割ろうとするようなものです。しかし、質問に答えるには:
NSMutableArray *stringComponents = [NSMutableArray arrayWithCapacity:[string length]];
for (int i = 0; i < [string length]; i++) {
NSString *character = [NSString stringWithFormat:@"%c", [string characterAtIndex:i]];
[stringComponents addObject:character];
}`