1

我想达到以下效果,但我不知道如何使用 NSMutableArray 结合 NSArray 两个以上?

1.我的代码

for (int i=0; i<[DateSortArry2 count]; i++) {
        for (int j=0; j<[DateSortArry2Copy count]; j++) { 
            NSString *sectiondateStr2 = [NSString stringWithFormat:@"%@",[DateSortArry2Copy objectAtIndex:j]];    
            if ([[DateSortArry2 objectAtIndex:i] isEqualToString:sectiondateStr2]) {  
                [Arry addObject:sectiondateStr2];   
            }
        }
        [SumArry addObjectsFromArray:Arry];
        [Arry removeAllObjects];
    }

2.我的代码结果

SumArry:(
"20130227",
"20130227",
"20130227",
"20130226",
"20130226",
"20130226",
"20130225",
"20130225")

3.我想要结果

SumArry:((
    "20130227",
    "20130227",
    "20130227",
    ),
    (
    "20130226",
    "20130226",
    "20130226",
    ),
    (
    "20130225",
    "20130225"
    ))
4

3 回答 3

2

您的代码通过添加元素反复填充和清空同一个数组,但您需要使用NSArray. 因此,NSArray为每个部分使用一个新的。

for (int i=0; i<[DateSortArry2 count]; i++) {
    NSMutableArray *section = [NSMutableArray array];
    for (int j=0; j<[DateSortArry2Copy count]; j++) { 
        NSString *sectiondateStr2 = [NSString stringWithFormat:@"%@",[DateSortArry2Copy objectAtIndex:j]];    
        if ([[DateSortArry2 objectAtIndex:i] isEqualToString:sectiondateStr2]) {  
            [section addObject:sectiondateStr2];   
        }
    }
    [SumArry addObject:section];
}
于 2013-03-30T02:58:52.873 回答
2

您可以在数组中存储对另一个数组(或任何类型的对象)的引用:

[myMutableArray addObject:otherArray];

或连接数组。

[myMutableArray addObjectsFromArray:otherArray];

两者都记录在文档中。从外观上看,第一种方法是您想要的,因为您想要拥有NSArray.NSMutableArray

于 2013-03-30T02:58:59.107 回答
1

试试这个:请告诉我它是否有效。谢谢

NSString *str = @"";
    for (int i=0; i<[DateSortArry2 count]; i++)
     {
           if (str isEqualToString:[DateSortArry2 objectAtIndex:i])
           {
                return;
           }
           else
           {
                NSMutableArray * Arry = [[NSMutableArray alloc] init];
                str = [DateSortArry2 objectAtIndex:i]
                for (int j=0; j<[DateSortArry2Copy count]; j++)
                {
                    if ([[DateSortArry2 objectAtIndex:i] isEqualToString:str])
                    {
                        [Arry addObject:str];
                    }
                }
                [SumArry addObject:Arry];
                [Arry removeAllObjects];
            }
    }
于 2013-04-01T09:04:13.163 回答