2010-02-17 12 views
7

PHP और जावास्क्रिप्ट में आप गतिशील रूप से एक चर का उपयोग अपने नाम के हिस्से के रूप में कर सकते हैं। मैं समाधान के हिस्से के रूप में एक सरणी का उपयोग नहीं करना चाहता। क्या यह उद्देश्य सी में हासिल किया जा सकता है? मैं इस तरह कुछ करने के लिए करना चाहते हैं:उद्देश्य सी PHP के "वैरिएबल वैरिएबल" के समतुल्य

for (int i=1; i<6; i++) { 
     if([appRecord.answer(i) length] != 0){ 
      self.textView.answer(i)ViewSingle.text = appRecord.answer(i); 
     } 
} 
+2

वही प्रश्न: http://stackoverflow.com/questions/2231783/create-multiple-variables-based-on-an-int-count/2231839#2231839 यह नहीं कह रहा कि आपको जवाब पसंद आएगा, लेकिन वहां यह है। एक सरणी का प्रयोग करें। – Chuck

+0

मुझे लगता है कि प्रश्न समान हैं लेकिन समान नहीं हैं। हालांकि, जवाब वही है। –

+0

यह सवाल एक और प्रश्न का डुप्लिकेट कैसे हो सकता है जिसे इस साल एक साल से अधिक समय से पूछा गया था? ओह मॉडरेटर ... –

उत्तर

21

संक्षिप्त उत्तर: संख्या

लंबा उत्तर: तरह।

  1. आप एक सरणी का उपयोग कर सकते हैं, वहां अपने चर स्टोर कर सकते हैं, और इसमें अनुक्रमित कर सकते हैं।
  2. # 1 की तरह, यदि आपकी वस्तुएं वास्तव में यूआई तत्व हैं और आप IBOutlets का पूरा समूह नहीं चाहते हैं, तो इसके बजाय IBOutletCollection का उपयोग करें।
  3. आप एक शब्दकोश का उपयोग कर सकते हैं, अपने चर को मान के रूप में स्टोर कर सकते हैं, और उन्हें कुंजी से देख सकते हैं।
  4. आप अपने सभी चर @property के रूप में घोषित कर सकते हैं, और फिर नाम से उन्हें देखने के लिए [self valueForKey:] का उपयोग करें।
  5. आप ivar का नाम स्ट्रिंग के रूप में बना सकते हैं, और उसके बाद object_getInstanceVariable() जैसे कुछ का उपयोग सीधे इसके मूल्य को पुनर्प्राप्त करने के लिए कर सकते हैं (यह # 3 के समान है, सिवाय इसके कि आपको इसे @property के रूप में घोषित करने की आवश्यकता नहीं है)। यह अत्यधिक जटिल है और आमतौर पर आपको वास्तव में आवश्यकतानुसार एक बड़ा हथौड़ा होता है।
  6. यदि आप विचारों से निपट रहे हैं, तो आप प्रत्येक दृश्य को एक अद्वितीय टैग असाइन कर सकते हैं और फिर इसे [superview viewWithTag:aTag] के माध्यम से पुनर्प्राप्त कर सकते हैं। मैं इस दृष्टिकोण का उपयोग करने की सिफारिश नहीं करता हूं।

संपादित करें: ध्यान दें कि यह केवल उदाहरण चर के साथ काम करता है। यह वैश्विक/स्थैतिक चर के साथ काम नहीं करता है।

+1

वाह, [स्व मूल्यफोरकी:] वही था जो मुझे चाहिए था क्योंकि मुझे आवश्यक सभी चर पहले से ही @property का उपयोग करके घोषित किया गया था। object_getInstanceVariable भी काम कर सकता है, लेकिन मुझे अभी तक यकीन नहीं है। आपने इंटरनेट पर इस विषय पर अब तक का सबसे अच्छा जवाब दिया है। –

+0

@Cirrostratus - मदद करने में खुशी हुई। मैं 'object_getInstanceVariable()' को दूसरे या तीसरे विकल्प के रूप में उपयोग करूंगा। 'valueForKey: 'शायद जाने का सबसे अच्छा तरीका है। –

0

नहीं। लेकिन अगर आप को देखने के लिए एक टैग देने के लिए और -viewWithTag: उपयोग कर सकते हैं।

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