ios - 如何将已排序的 NSStrings 的 NSArray 拆分为 NSMutableArrays 的 NSMutableArray

标签 ios nsstring nsmutablearray nsarray

我想知道如何将按字母顺序排序的 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/

相关文章:

ios - 去除 uisearchbar 中 uitextfield 的边框

ios - 从今天开始,SKScene 在 spriteKit 中没有改变

iphone - 为什么我的sizeWithFont是:constrainedToSize:lineBreakMode: always returning zero?

ios - 仅当成功将对象添加到nsset时,才能将对象添加到nsmutablearray吗?

ios - NSMutableArray 无法插入字典

ios - 无法更改 UIButton 的大小

ios - localizedStringWithFormat 如何工作?

objective-c - 为什么这两个 NSString 指针相同?

ios - 检查 NSMutableArray 是否包含一个 int

ios - 访问 UITableView Cell 标签文本并在方法中使用它