2010-02-25 5 views
17

जावा में, मैं ऐसा कर सकते हैं:मैं उद्देश्य सी में एक खाली सरणी कैसे बना सकता हूं, और इसमें एक-एक करके मूल्य असाइन कर सकता हूं?

int[] abc = new int[10]; 
for(int i=0; i<abc.length; i++){ 
    abc[i] = i; 
} 

मैं उद्देश्य सी में समान बात कैसे लागू कर सकते हैं?

मुझे एनएसएमयूटेबलएरे का उपयोग करके कुछ जवाब दिखाई देता है, यह और एनएसएआरएआरई के बीच अलग है?

उत्तर

16

कुछ इस तरह की कोशिश करो।

#import <foundation/foundation.h> 
int main (int argc, const char * argv[]) 
{ 
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 
    NSMutableArray *myArray = [NSMutableArray array]; 
    [myArray addObject:@"first string"]; 
    [myArray addObject:@"second string"]; 
    [myArray addObject:@"third string"]; 
    int count = [myArray count]; 
    NSLog(@"There are %d elements in my array", count); 
    [pool release]; 
    return 0; 
} 

पाश लगेगा जैसे:

NSString *element; 
int i; 
int count; 
for (i = 0, count = [myArray count]; i < count; i = i + 1) 
{ 
    element = [myArray objectAtIndex:i]; 
    NSLog(@"The element at index %d in the array is: %@", i, element); 
} 

देखें CocoLab

+0

यह किसी विशिष्ट अनुक्रमणिका में प्रवेश करने का उत्तर नहीं देता है। केवल इसे कैसे पढ़ा जाए। –

10
NSMutableArray* abc = [NSMutableArray array]; 
for (int i = 0; i < 10; ++ i) 
    [abc addObject:[NSNumber numberWithInt:i]]; 
return abc; 

यहाँ,

  • NSMutableArray एक "अस्थायी" सरणी प्रकार है। एक निरंतर सरणी सुपर-प्रकार एनएसएआरएआरई भी है। सी ++ के विपरीत, ओबीजेसी की सरणी टाइप नहीं की गई है। आप किसी भी ओबीजेसी वस्तुओं को एनएसएआरएआरई में स्टोर कर सकते हैं।
  • -addObject: सरणी के अंत में एक ओबीजेसी जोड़ता है।
  • चूंकि एनएसएआरआरएएस केवल ओबीजेसी स्टोर कर सकता है, इसलिए आपको पहले एनएसएनंबर में पूर्णांक "बॉक्स" करना होगा।

यह वास्तव में अधिक सी ++ कोड के समान है

std::vector<int> abc; 
for (int i = 0; i < 10; ++ i) 
    abc.push_back(i); 
return abc; 
3

मैं कुछ NSMutableArray का उपयोग कर उत्तर देखें, wt इस और NSArray के बीच अलग है?

NSArrayअपरिवर्तनीय है: यह बदला नहीं जा सकता। NSMutableArray एक उप-वर्ग है जो उत्परिवर्तनीय है, और सरणी इंटरफेस में विधियों को जोड़ता है जिससे इसकी सामग्री में हेरफेर हो सके। यह कोको में कई स्थानों पर देखा गया पैटर्न है: NSString, NSSet, और NSDictionary विशेष रूप से लगातार उदाहरण हैं जो उत्परिवर्तनीय उप-वर्गों के साथ सभी अपरिवर्तनीय वस्तुएं हैं।

इसके लिए सबसे बड़ा कारण दक्षता है। आप अपरिवर्तनीय वस्तुओं के साथ स्मृति प्रबंधन और थ्रेड सुरक्षा के बारे में धारणाएं बना सकते हैं जिन्हें आप उन वस्तुओं के साथ नहीं बना सकते हैं जो आपके अंतर्गत से बदल सकते हैं।

संबंधित मुद्दे

 संबंधित मुद्दे