我想問一下關於目標C的問題。我想在目標C中創建一個2D NSArray或NSMutableArray。我該怎麼做?存儲在數組中的對象是NSString *。非常感謝。如何在目標C中創建2D NSArray或NSMutableArray?
回答
這當然是可能的,但我認爲值得注意的是NSArrays只能容納對象,而不是原始類型。
解決此問題的方法是使用原始包裝類型NSNumber
。
NSMutableArray *outer = [[NSMutableArray alloc] init];
NSMutableArray *inner = [[NSMutableArray alloc] init];
[inner addObject:[NSNumber numberWithInt:someInt]];
[outer addObject:inner];
[inner release];
//do something with outer here...
//clean up
[outer release];
編輯使我的答案更適用於這個問題。最初我沒有注意到你正在尋找一個二維數組。如果您知道多少您需要預先多少,您可以交錯數據並邁進一步。我知道,可能有其他(更客觀的標準)方法,讓數組在數組內部,但對我來說會變得混亂。數組內部的數組不是2維數組。這只是其中一個對象的第二個維度。你必須爲每個對象添加一個數組,這不是我認爲的二維數組。對或錯我通常以對我有意義的方式做事。
因此,可以說,你需要一個6x6的陣列:
int arrayStride=6;
int arrayDepth=6;
NSMutableArray *newArray = [[NSMutableArray alloc] initWithCapacity:arrayStride*arrayDepth];
我更喜歡用對象填充它初始化數組;
for(int i=0; i<arrayStride*arrayDepth; i++) [newArray addObject @"whatever"];
然後後,您可以通過firstDim訪問的對象+ secondDim * 6
int firstDim = 4;
int secondDim = 2;
NSString *nextString = [newArray objectAtIndex:firstDim+secondDim*6];
不回答問題(OP詢問有關二維數組),並且啓動不正確(索引從0開始,因此最後一個對象的索引是i-1,而不是i)。 – 2010-07-16 02:21:16
我沒有注意到2D的東西...是的,我的我是不正確的最後一個對象。感謝您指出。我改變了我的答案,我會做一個2D數組。 – badweasel 2010-07-16 04:24:12
與NSNumbers作爲鍵和數組作爲對象的嘗試的NSMutableDictionary。一個維度將成爲關鍵,另一個維度將成爲對象。
要創建特定的 「二維數組」
NSMutableDictionary *twoDArray = [NSMutableDictionary dictionary];
for (int i = 0; i < 10; i++){
[twoDArray setObject:arrayOfStrings forKey:[NSNumber numberWithInt:i]];
}
提取數據
NSString *string = [[twoDArray objectForKey:[NSNumber numberWithInt:3]] objectAtIndex:5];
//will pull string from row 3 column 5 -> as an example
- 1. 的NSMutableArray到的NSArray在目標C
- 2. 如何在Objective-C中構建類方法的NSArray(或NSMutableArray)?
- 3. NSMutableArray或NSArray結構
- 4. 從2D創建一個C數組NSArray
- 5. 如何在目標C中搜索NSArray
- 6. Objective-C:創建NSMutableDictionary或NSMutableArray
- 7. 從NSMutableArray中的對象創建NSArray
- 8. 如何在目標C中創建PKCS12
- 9. 如何在目標c中使用NSArray對象的NSArray?
- 10. iPhone:如何在目標C創建JSON
- 11. 你如何過濾NSArray或NSMutableArray?
- 12. 的NSArray(目標C)
- 13. 如何在Objective-C中將整列中的值檢索到NSArray或NSMutableArray?
- 14. 如何在Iphone SDK中附加兩個NSMutableArray或者附加NSArray和NSMutableArray?
- 15. NSArray到NSMutableArray
- 16. NSArray排序NSMutableArray
- 17. NSArray/NSMutableArray:通過ref或通過值?
- 18. 目標c 2D梯度
- 19. 如何獲取目標文件的創建日期目標c
- 20. 在NSArray中存儲NSMutableArray?
- 21. 如何創建位數組目標C
- 22. 如何在for循環中創建NSArray
- 23. 如何在目標c中創建一個CGFloats數組?
- 24. 拉NSArray從NSMutableArray
- 25. 創建2D unordered_map C++
- 26. 秩序的NSArray - 目標C
- 27. 目標C的NSString的NSArray
- 28. 如何在目標C中創建Json請求C
- 29. 目標C中的2D陣列
- 30. 的Objective-C試圖創建在NSArray中每個項目的標籤 - 不工作
謝謝您的答覆。是否有可能創建一個動態數組而不是在開始時設置長度? – Questions 2010-07-16 01:42:22
@MarkSiu,是的。如果你想,我可以給你一個這樣的例子。 – 2010-07-16 01:46:13
謝謝你的回覆。你介意給我舉個例子嗎?非常感謝你。 – Questions 2010-07-16 01:52:33