मैं उद्देश्य सी में iPhone देव और एक बात के साथ शुरुआत कर मुझे लगता है मैं कर रहा हूँ काफी एक बहुत में और विभिन्न NSArrays से बाहर तैरता (और ints) मिल रहा हैक्या कोई सरणी से फ़्लोट प्राप्त करने का कोई शॉर्टेंड तरीका है?
float myFloatValue = [(NSNumber *)[myArray objectAtIndex:integerSelector] floatValue];
मैं समझता हूँ कि मैं जरूरत इस मुक्केबाजी को करने के लिए क्योंकि एक फ्लोट (या int) एक सूचक नहीं है और एनएसएआरएआरई केवल पॉइंटर्स स्वीकार करता है।
मैं सोच रहा हूं कि कोड की इस पंक्ति को कम करने के लिए सिंटैक्टिक चीनी का थोड़ा सा हिस्सा है - अधिकांशतः क्योंकि जब मेरे पास कुछ एरे होते हैं और मैं कुछ प्रसंस्करण करने के लिए उन पर लूप कर रहा हूं तो मुझे लगता है कि लाइनें शुरू होती हैं भारी हो रहा है और मुझे उन रेखाओं को तोड़ना है जो कोड को पठनीय बनाने के लिए सरणी संख्या को निकालने के लिए हैं - फिर मेरे पास बहुत सारी गम्फ लाइनें हैं जो तर्क को पालन करने में कठोर बनाती हैं।
सी # की तरह एक भाषा मैं
float myResult = myArray[i] + someOtherArray[i+1];
की तरह कुछ लिखना आरंभ करेगा (ठीक - कि शायद कोड का एक बहुत गूंगा लाइन है - लेकिन वाक्य रचना यह काफी साफ है, मुझे लगता है कि क्योंकि .net परोक्ष जहां बॉक्सिंग कर रही है मैं यह उद्देश्य सीआई में नहीं देख सकते हैं)
पाते हैं अपने आप को लेखन:
float myFloatValue = [(NSNumber *)[myArray objectAtIndex:i] floatValue];
float myOtherFloatValue = [(NSNumber *)[someOtherArray objectAtIndex:i+1] floatValue];
float myResult = myFloatValue + myOtherFloatValue;
मैं सिर्फ अगर मैं यह सब बाहर पूरे अक्षरों में लिखावट टाइप करके यहाँ एक चाल याद कर रहा हूँ सोच रहा हूँ। क्या मुझे एनएसएआरएआरई के विकल्प का उपयोग करना चाहिए? क्या मुक्केबाजी/अनबॉक्सिंग के लिए शॉर्टकट है?
या मुझे लगता है, मैं सिर्फ यह करने के लिए इस्तेमाल किया और whinging रोक लेना चाहिए;)
नहीं, उद्देश्य-सी बेकार है। लेकिन यदि आप केवल फ़्लोट्स स्टोर कर रहे हैं तो आप एक सी सरणी का उपयोग कर सकते हैं। सी सरणी के साथ समस्या गतिशील स्मृति आवंटन है। – vakio
ठीक है, कम से कम, आप बिल्कुल क्यों कास्टिंग कर रहे हैं? यह सी ++ नहीं है। आप जो भी संदेश 'आईडी' ऑब्जेक्ट में भेजना चाहते हैं उसे भेज सकते हैं। – StilesCrisis