मैं उद्देश्य-सी में स्ट्रिंग प्रकार की दो आयामी सरणी कैसे घोषित करूं?उद्देश्य-सी में स्ट्रिंग प्रकार की दो आयामी सरणी कैसे घोषित करें?
उत्तर
सबसे पहले, आप अपने आंतरिक सरणी के तारों को पकड़ने के लिए कक्षा का उपयोग करने पर विचार कर सकते हैं, या इसे एक प्लेस्ट फ़ाइल से लोड कर सकते हैं (जिसमें तारों की 2 डी सरणी बनाना आसान है)।
प्रत्यक्ष घोषणाओं के लिए, आपके पास कुछ विकल्प हैं। आप एक NSArray का उपयोग करना चाहते हैं, तो आप मैन्युअल रूप से इस तरह की संरचना बनाना होगा:
NSArray *strings = @[ @[ @"A", @"B", @"C" ], @[ @"D", @"E", @"F" ], @[ @"G", @"H", @"I" ] ]
: या सरणी शाब्दिक का उपयोग कर
NSMutableArray *strings = [NSMutableArray array];
for(int i = 0; i < DESIRED_MAJOR_SIZE; i++)
{
[strings addObject: [NSMutableArray arrayWithObject:@"" count:DESIRED_MINOR_SIZE]];
}
,, आप एक अपरिवर्तनीय संस्करण इस तरह प्राप्त कर सकते हैं
फिर आप इस तरह उपयोग कर सकते हैं:
NSString *s = [[strings objectAtIndex:i] objectAtIndex:j];
यह कुछ हद तक प्रारंभ करने में अजीब है, लेकिन यह जाने के लिए आप NSArray तरीकों का उपयोग करना चाहते हैं तो तरीका है।
NSString *strings[MAJOR_SIZE][MINOR_SIZE] = {0}; // all start as nil
और फिर इसका इस्तेमाल इस तरह::
एक वैकल्पिक सी सरणियों उपयोग करने के लिए है
NSString *s = strings[i][j];
यह कम अजीब है, लेकिन आप को बनाए रखने/कॉपीको सावधान रहना होगा और मानों को रिलीज़ करते हैं जैसे आप उन्हें डालते हैं और उन्हें सरणी से हटा देते हैं। (! जब तक आप एआरसी का उपयोग कर रहे ज़ाहिर है,) NSArray आप के लिए, लेकिन वह सी शैली सरणियों के साथ ऐसा होता है, तो आप एक सरणी को बदलने के लिए कुछ इस तरह करने की जरूरत है:
[strings[i][j] release];
strings[i][j] = [newString retain];
अन्य अंतर यह है कि आप है सी-स्टाइल सरणी में शून्य डाल सकते हैं, लेकिन एनएसएआरआरएआरई नहीं - आपको इसके लिए एनएसएनयूएल का उपयोग करने की आवश्यकता है। एनएसएसटींग मेमोरी मैनेजमेंट के बारे में अधिक जानकारी के लिए स्टैक ओवरफ्लो प्रश्न Cocoa: Memory management with NSString पर भी नज़र डालें।
+1। – Abizern
आप घोषित करने और तार के एक दो आयामी सरणी को प्रारंभ करना चाहते हैं, तो आप ऐसा कर सकते हैं:
NSArray *myArray = [NSArray arrayWithObjects:
[NSArray arrayWithObjects:@"item 1-1", @"item 1-2", nil],
[NSArray arrayWithObjects:@"item 2-1", @"item 2-2", nil],
[NSArray arrayWithObjects:@"item 3-1", @"item 3-2", nil],
[NSArray arrayWithObjects:@"item 4-1", @"item 4-2", nil],
nil];
यह आपको एक अपरिवर्तनीय सरणी देने को लाभ मिलता है।
हाय स्टीव मैकिलोड, अगर मेरे पास इस तरह मेरा ऐरे है तो मैं "आइटम 1-1" का मूल्य कैसे प्राप्त कर सकता हूं। –
[[myArray objectAtIndex: 1] objectAtIndex: 1] – Hackmodford
मैं स्वयं विज्ञापन कर सकता हूं लेकिन मैंने 212 सरणी के रूप में NSMutableArray
पर एक आसान रैपर लिखा था। यह गिटहब पर CRL2DArray
के रूप में यहां उपलब्ध है। https://github.com/tGilani/CRL2DArray
एंड्रॉइड (जावा) से आ रहा है मुझे आश्चर्य है कि ओबीजे-सी में 2 डी ऐरे बनाने में कितना मुश्किल है, बहुत उपयोगी गिटहब सर के लिए धन्यवाद! –
एकमात्र समस्या यह है कि मेरी इच्छा है कि अधिक अंतर्निहित विधियां हों जो एक सामान्य एनएसएआरएआरई की तरह गिनती है, लेकिन अब के लिए मैं इसे मैन्युअल रूप से करूँगा! –
- 1. मैं जावास्क्रिप्ट में दो आयामी सरणी कैसे घोषित करूं?
- 2. दो आयामी सरणी (वाई अक्ष)
- 3. PHP में सबसे आसानी से दो आयामी सरणी कैसे घोषित करें?
- 4. दो आयामी सरणी और संकेत
- 5. जावा - प्रिंटिंग दो आयामी सरणी
- 6. PHP दो बहु-आयामी सरणी
- 7. प्रोग्रामिंग के दो आयामी सरणी में मान कैसे सम्मिलित करें?
- 8. रेल 3 में दो आयामी सरणी की सरणी से रिकॉर्ड कैसे प्राप्त करें?
- 9. ** सूचक के लिए दो आयामी सरणी कैसे असाइन करें?
- 10. मैं किसी भी दिशा में दो आयामी सरणी कैसे खोजूं
- 11. पर्ल 2-आयामी सरणी कैसे मुद्रित करें?
- 12. तारों की एक 2 आयामी सरणी शुरू करना
- 13. एक क्रमबद्ध दो आयामी numpy सरणी
- 14. दो आयामी सरणी का उपयोग कर टेम्पलेट्स
- 15. विभिन्न प्रकारों की द्वि-आयामी सरणी
- 16. 2 आयामी सरणी
- 17. एक 1 आयामी सरणी में बहु आयामी सरणी
- 18. फोरट्रान में आवंटनीय स्केलर की सरणी कैसे घोषित करें?
- 19. सी # jagged सरणी प्रकार की घोषणा रिवर्स
- 20. पाइथन (दो-आयामी)
- 21. 2 आयामी सरणी सूची
- 22. पायथन: विभिन्न प्रकारों की बहु-आयामी सरणी
- 23. सरणी बनाम बहु-आयामी सरणी
- 24. बहु-आयामी सरणी बनाम एक आयामी
- 25. दो सरणी की सामग्री की तुलना कैसे करें?
- 26. रेल: स्ट्रिंग की सरणी i18n कैसे करें?
- 27. स्ट्रिंग सरणी की लंबाई कैसे प्राप्त करें?
- 28. स्कैला में बहु-आयामी सरणी कैसे बनाएं और उपयोग करें?
- 29. अस्थायी चर में बहु-आयामी सरणी कैसे असाइन करें?
- 30. जावा स्क्रिप्ट में निम्न मल्टी-आयामी सरणी कैसे मुद्रित करें?
यदि आप एनएस (उत्परिवर्ती) ऐरे की बात कर रहे हैं, तो आप इसे "घोषित" नहीं करते हैं। एक एनएसएआरएआरई में कोई असाइन किया गया सामग्री प्रकार नहीं है, इसलिए आप बाहरी सरणी घोषित करते हैं। आप इसका उपयोग कैसे करते हैं आप पर निर्भर है। मुझे बहुत सारे टाइपिंग को बचाने के लिए –