ここで、ifステートメントが発生するたびにtempArrayがmasterArrayに追加されることになっている、この奇妙なシンフが発生しています。(ifステートメントは完全に機能し、必要なときにトリガーされます。)
また、毎回一時配列をクリアする必要があります。
最終的な結果は、追加した各配列を含むmasterarrayになります(forループ全体で追加したすべての一時配列を意味します)
代わりに、tempArrayをインデックス0のMasterArrayに毎回追加し続けるだけです。
コード:
- (void)alpabetize:(NSArray *)arr {
self.tempArray = [[NSMutableArray alloc] init];
self.masterArray = [[NSMutableArray alloc] init];
for (int i = 0; i<[arr count]; i++) {
NSString *currentString = [NSString stringWithFormat:@"%@", [[[arr objectAtIndex:i] valueForKey:@"first_name"] substringToIndex:1]];
NSString *nextString = [NSString stringWithFormat:@"%@", [[[arr objectAtIndex:(i+1)] valueForKey:@"first_name"] substringToIndex:1]];
[self.tempArray addObject:[arr objectAtIndex:i]];
if (![currentString isEqualToString:nextString]) {
[self.masterArray addObject:tempArray];
[self.tempArray removeAllObjects];
}
}
}
以前に他の配列に追加された元の配列からすべてのオブジェクトを削除した場合。これは他のアレイもクリアしますか?これは私には意味がありません。私のコードに何か問題があるに違いありません。誰かが私のエラーを見つけるのを手伝ってくれますか?
お時間をいただきありがとうございます!