2012-05-28 15 views
9

मैं ios में दो आयामी सरणी का उपयोग करना चाहते, उदाहरण के लिए मैं tableview डेटा स्रोत के लिए एक सरणी तैयारी करना चाहते हैं में आयामी सरणी,दो ios

UITableViewCell array[sections][rows];

कुछ इस तरह, और यहाँ मैं आकार predeclare नहीं कर सकते भी।

धन्यवाद

+0

जांच [इस] (http://stackoverflow.com/a/4982636/845115) –

+1

एक छोटी सी सलाह ... मैं मैन्युअल रूप से की दुकान नहीं करने के लिए आप की सिफारिश करेंगे arrays में आपके tableCells, क्योंकि dequeueReusableCellWithIdentifier विधि का उपयोग कर, बेहतर स्मृति हैंडलिंग और प्रदर्शन के लिए कोशिकाओं को UITableView द्वारा पुन: उपयोग किया जा सकता है। आपको उस डेटा का प्रतिनिधित्व करना चाहिए जिसे आप सूचियों, सरणी या जो कुछ भी पसंद करते हैं, में दिखाना चाहते हैं, और उसके बाद सेल को ForRowAtIndexPath विधि में डेटा को बाध्य करें। –

उत्तर

24
NSMutableArray *dataArray = [[NSMutableArray alloc] initWithCapacity: 3]; 

[dataArray insertObject:[NSMutableArray arrayWithObjects:@"0",@"0",@"0",nil] atIndex:0]; 
[dataArray insertObject:[NSMutableArray arrayWithObjects:@"0",@"0",@"0",nil] atIndex:1]; 
[dataArray insertObject:[NSMutableArray arrayWithObjects:@"0",@"0",@"0",nil] atIndex:2]; 

और यह कैसे आप सरणी

NSMutableArray *subArray = [dataArray objectAtIndex:2]; 
NSLog(@"data : %@",[subArray objectAtIndex:0]); 
2

की स्थापना की एक NSDictionary से अपने मान का चयन और प्रत्येक कोशिका

+1

क्या यह बहुत भ्रमित नहीं होगा यदि तालिका दृश्य में सूची बदल गई है, यानी यदि सूची से कोई आइटम हटा दिया गया हो? फिर आपको सूची में निम्नलिखित सभी वस्तुओं के लिए कुंजी बदलनी होगी ... –

+0

@jake_hetfield बिल्कुल। यह केवल स्थिर डेटा स्रोतों के लिए उपयोगी होगा। लेकिन फिर एक सरणी में कोशिकाओं को संग्रहित करना मुझे किसी भी तरह के प्रयासों की बर्बादी की तरह लगता है – wattson12

1

वाक्यात्मक चीनी दृष्टिकोण के लिए कुंजी के रूप में एक NSIndexPath का उपयोग करें । ध्यान दें कि यह दृष्टिकोण किसी दिए गए आकार के स्वचालित रूप से NSMutableArray नहीं बनाएगा। प्रारंभिक सरणी आकार 0 हो जाएगा, 0.

NSMutableArray *yourArray = [@[ [@[] mutableCopy]] mutableCopy]; 

// add an object to the end of your array 
[yourArray[section][row] addObject:@(22)]; 

// set/change an NSNumber object at a particular location in the 2D array. 
yourArray[section][row] = @(22); 

// Retrieve a value, converting the NSNumber back to a NSInteger 
NSInteger result = [yourArray[section][row] integerValue]; 
+0

यह एक अच्छी शुरुआत है, लेकिन यह दिखाने के लिए कि वस्तुओं को कैसे जोड़ना है और वस्तुओं को कैसे पहुंचाया जाए, इसे विस्तारित करने का तरीका यह एक और पूर्ण उत्तर देगा। – Caleb

+1

थोड़ा और अधिक कार्यक्षमता @Caleb जोड़ा गया – JaredH