2010-06-04 26 views
2

我有四個陣列如下:如何複製數組?

toArray = [[NSMutableArray alloc] initWithObjects:@"to 1",@"to 2",@"to 3",@"to 4",@"to 5",@"to 6",@"to 7",nil]; 
fromArray = [[NSMutableArray alloc] initWithObjects:@"from 1",@"from 2",@"from 3",@"from 4",@"from 5",@"from 6",@"from 7",nil]; 
messageArray = [[NSMutableArray alloc] initWithObjects:@"message 1",@"message 2",@"message 3",@"message 4",@"message 5",@"message 6",@"message 7",nil]; 
dayArray = [[NSMutableArray alloc] initWithObjects:@"day 1",@"day 2",@"day 3",@"day 4",@"day 5",@"day 6",@"day 7",nil]; 

我想複製或建立一個單一的陣列,其應該包含所有這4個陣列。 我該如何實現它?

+1

你是什麼意思由「包含「[[1a,1b],[2a,2b]]或'[1a,1b,2a,2b]'? – kennytm 2010-06-04 07:06:10

回答

5

你的問題有點含糊不清;你想要什麼結果?

NSMutableArray *completeArray = [NSMutableArray array]; 
[completeArray addObjectsFromArray:toArray]; 
[completeArray addObjectsFromArray:fromArray]; 
[completeArray addObjectsFromArray:messageArray]; 
[completeArray addObjectsFromArray:dayArray]; 

或者

NSMutableArray *completeArray = [NSMutableArray arrayWithObjects:toArray, fromArray, messageArray, dayArray, nil]; 

或者,如果所有陣列具有相同數量的元素:

NSMutableArray *completeArray = [NSMutableArray array]; 
for (NSUInteger i = 0; i < [toArray count]; i++) 
{ 
    NSString *fullString = [NSString stringWithFormat:@"%@ %@ %@ %@", [toArray objectAtIndex:i], [fromArray objectAtIndex:i], [messageArray objectAtIndex:i], [dayArray objectAtIndex:i]]; 
    [completeArray addObject:fullString]; 
} 

或者,作爲字典(也假定所有陣列是相同的長度)的數組:

NSMutableArray *completeArray = [NSMutableArray array]; 
for (NSUInteger i = 0; i < [toArray count]; i++) 
{ 
    NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys: 
     [toArray objectAtIndex:i], @"to", 
     [fromArray objectAtIndex:i], @"from", 
     [messageArray objectAtIndex:i], @"message", 
     [dayArray objectAtIndex:i], @"day", 
     nil]; 
    [completeArray addObject:dict]; 
} 
+0

感謝dreamlax ....爲我展示瞭如此多的方式實現... 我真的很感激你。 關於 shishir – iscavengers 2010-06-04 07:21:44

1

這應該工作:

NSArray *singleArray = [NSArray arrayWithElements:toArray, fromArray, messsageArray, dayArray, nil]; 
// mind the nil element at the end 
+2

沒有叫做'+ arrayWithElements:'的方法。你的意思是'+ arrayWithObjects:'? – kennytm 2010-06-04 07:08:11

+0

其實我需要顯示的信息像這樣 TO1 1跳轉 MESSAGE1 DAY1 TO2 from2 消息2 DAY2 TO3 from3 MESSAGE3 第三天 像DAT,在表視圖。 我應該怎麼做才能在表格視圖中得到這個模式。 謝謝Eimantas,快速回復 關於 – iscavengers 2010-06-04 07:11:57

+0

是的,我的意思是'+ arrayWithObjects:'。我認爲你正在創建某種消息列表。您需要一個包含字典的數組,其中每個字典將保存一條消息(即表示一個表的一行)。 – Eimantas 2010-06-04 07:14:44

1
NSMutableArray *result = [NSMutableArray arrayWithCapacity:0]; 

[result addObjectsFromArray:toArray]; 
[result addObjectsFromArray:fromArray]; 
[result addObjectsFromArray:messageArray]; 
[result addObjectsFromArray:dayArray]; 
+0

「arrayWithCapacity:0」的原因是什麼?爲什麼不只是「數組」(array) – JeremyP 2010-06-04 07:24:48

+0

我在類「A」中有一個數組(「數組A」)。 在類「B」中,我有另一個數組(「數組B」),它只填充類「B」的tableview。 我需要使用A類數組的值(即數組A)填充tableview。 我該怎麼做? 如何從另一個類複製數組? 我希望我明確與我的問題 問候shishir – iscavengers 2010-06-05 09:08:44