2013-03-30 38 views
1

我想下面的效果,但我不知道如何使用NSMutableArray结合NSArray超过两个?关于NSMutableArray添加NS​​Array的问题

1.my代码

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.my码结果

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

3.我想要的结果

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

嘿!为什么downvotes?必须帮助人们。 Upvoting以抵消downvotes ... –

回答

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]; 
} 
+0

非常感谢!sartak!你是对的! – SimonKira

2

您可以存储到您的阵列中的另一个阵列(或任何类型的对象)的引用:

[myMutableArray addObject:otherArray]; 

或者concatinate阵列。

[myMutableArray addObjectsFromArray:otherArray]; 

这两者都记录在the documentation。从外观上看,第一种方法是你想要的,因为你想要有NSArrayNSMutableArray

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]; 
      } 
    }