我想知道如何将按字母顺序排序的 NSString 的 NSArray 拆分为 NSMutableArray 的 NSMutableArray。
例如说我的 NSArray 看起来像这样
Alice
Awesome
Bacon
Beef
Hat
Hooters
Horse
我希望 NSMutableArrays 的 NSMutableArray 看起来像这样
-- Alice
Awesome
-- Bacon
Beef
-- Hat
Hooters
Horse
我知道它很可能需要使用 for at for 循环来完成,但我只是不确定如何捕获第一个字母。
这是我想出的伪代码
NSMutableArray *mainArray = [NSMutableArray alloc] init];
for (int i = 0; i < [sortedArray count]; i++) {
NSMutableArray *subArray = [NSMutableArray alloc] init];
NSString *currentString = [sortedArray objectAtIndex:i];
if (figure out if first character of currentString is what it is supposed to be){
[subArray addObject:currentString];
}
[mainArray addObject:subArray];
}
我知道这已关闭并且 for 循环逻辑已关闭,但是找到第一个字母是我遇到问题的地方。据我所知,有一种更快的委托(delegate)方法可以自动执行所有操作,但这就是我问这个问题的原因。
最佳答案
NSString* currentLetter;
NSMutableArray* currentSubArray;
for( NSString* name in sortedArray ){
NSString* firstLetterOfName = [name substringToIndex:1];
if( [firstLetterOfName isEqualToString:currentLetter] ){
// Name first letter is equal to the last one, so just add to current sub array
[currentSubArray addObject:name];
}
else{
// New letter found, create a new sub array and add to main one
currentSubArray = [[NSMutableArray alloc] initWithObjects:name, nil]; // needs nil
currentLetter = firstLetterOfName;
[mainArray addObject:currentSubArray];
}
}
类似的东西?
关于ios - 如何将已排序的 NSStrings 的 NSArray 拆分为 NSMutableArrays 的 NSMutableArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22053140/