हम एनएसएआरएआर को सी सरणी में परिवर्तित कर सकते हैं। । यदि क्या नहीं विकल्प देखते हैं [लगता है मैं ओपन कार्यों में ग सरणी जहां ग सरणी शिखर सूचक plist फ़ाइलों से पढ़ने शामिल खिलाने के लिए की जरूरत है]एनएसएआरएआर से सी सर
उत्तर
उत्तर सी-सरणी की प्रकृति पर निर्भर करता है।
आप आदिम मूल्यों की और ज्ञात लंबाई की एक सरणी को भरने के लिए की जरूरत है, तो आप कुछ इस तरह कर सकता है:
NSArray* nsArray = [NSArray arrayWithObjects:[NSNumber numberWithInt:1],
[NSNumber numberWithInt:2],
nil];
int cArray[2];
// Fill C-array with ints
int count = [nsArray count];
for (int i = 0; i < count; ++i) {
cArray[i] = [[nsArray objectAtIndex:i] intValue];
}
// Do stuff with the C-array
NSLog(@"%d %d", cArray[0], cArray[1]);
यहाँ एक उदाहरण है, जहां हम एक NSArray
से एक नई सी-सरणी का निर्माण करना चाहते है, Obj सी वस्तुओं के रूप में सरणी आइटम रखने:
NSArray* nsArray = [NSArray arrayWithObjects:@"First", @"Second", nil];
// Make a C-array
int count = [nsArray count];
NSString** cArray = malloc(sizeof(NSString*) * count);
for (int i = 0; i < count; ++i) {
cArray[i] = [nsArray objectAtIndex:i];
[cArray[i] retain]; // C-arrays don't automatically retain contents
}
// Do stuff with the C-array
for (int i = 0; i < count; ++i) {
NSLog(cArray[i]);
}
// Free the C-array's memory
for (int i = 0; i < count; ++i) {
[cArray[i] release];
}
free(cArray);
या, आप nil
करना चाह सकते हैं -terminate सरणी के बजाय इसकी लंबाई के आसपास गुजर:
// Make a nil-terminated C-array
int count = [nsArray count];
NSString** cArray = malloc(sizeof(NSString*) * (count + 1));
for (int i = 0; i < count; ++i) {
cArray[i] = [nsArray objectAtIndex:i];
[cArray[i] retain]; // C-arrays don't automatically retain contents
}
cArray[count] = nil;
// Do stuff with the C-array
for (NSString** item = cArray; *item; ++item) {
NSLog(*item);
}
// Free the C-array's memory
for (NSString** item = cArray; *item; ++item) {
[*item release];
}
free(cArray);
मैं, अपने आप को परिवर्तित करने के लिए की तरह कुछ के साथ सुझाव है:
NSArray * myArray;
... // code feeding myArray
id table[ [myArray count] ];
int i = 0;
for (id item in myArray)
{
table[i++] = item;
}
NSArray
में एक सरणी के उप-श्रेणी के लिए सी-सरणी बनाने के लिए -getObjects:range:
विधि है।
उदाहरण:
NSArray *someArray = /* .... */;
NSRange copyRange = NSMakeRange(0, [someArray count]);
id *cArray = malloc(sizeof(id *) * copyRange.length);
[someArray getObjects:cArray range:copyRange];
/* use cArray somewhere */
free(cArray);
जो NSNumber ऑब्जेक्ट्स को एक आदित्मक संख्यात्मक प्रकार में परिवर्तित नहीं करेगा, हालांकि। प्रश्नकर्ता को ओपनजीएल के साथ सी सरणी का उपयोग करने के लिए रूपांतरण की आवश्यकता होती है; इसके कारण, वे सीएस सरणी को पूरी तरह से स्वयं भी बना सकते हैं, बिना किसी NSNumbers को डाले। –
आह! समस्या के लिए ओपनजीएल आवश्यकता नहीं देखी गई। उस स्थिति में हाँ, सरणी को मैन्युअल रूप से पुन: सक्रिय करना उपयुक्त होगा। –
- 1. एनएसएआरएआर
- 2. एनएसएआरएआर
- 3. एनएसएआरएआर
- 4. एनएसएआरएआर बूल से भरा
- 5. बूल ऑब्जेक्ट्स से भरे एनएसएआरएआर
- 6. आईफोन, एनएसएआरएआर
- 7. एक एनएसएआरएआर
- 8. सरणी के अंत से स्लाइस एनएसएआरएआर
- 9. एम्बेडेड एनएसएआरएआर
- 10. उद्देश्य-सी एक एनएसएआरएआर ठीक से कॉपी करें?
- 11. एनएसएआरएआर कंट्रोलर और केवीओ
- 12. संयुक्त Arrays के एनएसएआरएआर
- 13. एक्स, वाई, जेड 2 डी सर
- 14. एनएसएआरएआर कॉपी ऑब्जेक्ट्स करता है?
- 15. कक्षा द्वारा एनएसएआरएआर फ़िल्टर करना संभव है?
- 16. बूस्ट की प्रतिलिपि :: सर <char> std :: स्ट्रिंग
- 17. मौजूदा एनएसएआरएआरई से नया एनएसएआरएआर बनाने के लिए मानक सम्मेलन क्या है?
- 18. एनएसएआरएआर कंट्रोलर का बैक किया गया एनएसटीबल व्यू
- 19. कोको: जांचें कि क्या दो एनएसएआरएआर बराबर हैं
- 20. आईफोन के लिए एनएसएआरएआर कंट्रोलर क्यों नहीं है?
- 21. कोर डेटा नमूना कोड में एनएसएआरएआर स्टोर करें?
- 22. शब्दकोशों में एक कुंजी के मूल्य से शब्दकोशों के एनएसएआरएआर को छंटाई
- 23. उद्देश्य सी
- 24. एक सर सरणी को एक स्ट्रिंग सरणी में कैसे परिवर्तित करें?
- 25. डी 3: 2 डी सर डेटा द्वारा संचालित ग्रेस्केल छवि प्रदर्शन
- 26. एफ # सर 2 डी को कैसे जोड़ना/शामिल करना और एआर 2 डी
- 27. सी ++ से सी #
- 28. Obj सी से सी #
- 29. सी # से सी डीएलएल
- 30. सी ++ कोड से सी
यह एक महान जवाब है, काश मैं ऊपर एक से अधिक बार मतदान कर सकता है। मेरे पास एक सुझाव है जो कि 'एनएसएसटींग **' प्रकार का उपयोग थोड़ा खराब है। मैं सुझाव देता हूं कि '[NSData initWithBytesNoCopy: length: freeWhenDone:]' के साथ सूचक जो malloc देता है, और सरणी का आकार। – alfwatt
मैंने मैलोक का उपयोग करने वाले दूसरे दृष्टिकोण की कोशिश की, मुझे लगता है कि इसे अक्षम होने की आवश्यकता है। कम से कम, इस तरह मैं इसे काम करने के लिए मिला। शायद इस सवाल से पूछा गया था कि इस सवाल से पूछा गया था .... –