Objective-c Iphone how to set default value for a property -
नमस्ते मुझे निम्न कोड को ViewController.h पर मिला है:
#import & LT; UIKit / UIKit.h & gt; @ इंटरफेस कैल्कव्यूकंट्रोलर: UIViewController {NSNumber * परिणाम; NSString * इनपुट; // NSString * इनपुट = @ ""; IBOutlet UITextField * प्रदर्शन; } @ प्रॉपर्टी (बनाए रखना) एनएसएनम्बर * परिणाम; @ प्रॉपर्टी (बनाए रखना) NSString * इनपुट; @property (nonatomic, retain) UITextField * प्रदर्शन; @end समस्या यह है कि मैं इनपुट के लिए एक स्ट्रिंग जोड़ना चाहता हूं लेकिन यह तब संभव नहीं है जब इसकी अभी भी शून्य। यही वजह है कि मैं इनपुट के डिफ़ॉल्ट मान को @ @ करने के लिए सेट करना चाहता हूं। लेकिन मैं यह कोड कहां रखता हूं।
मुझे एक संभावित हल के बारे में पता है, जहां आपने उसे एक डिफ़ॉल्ट कन्स्ट्रक्टर में रखा था। लेकिन मुझे यह पता नहीं है कि यह किस फाइल को डाल रहा है। और जहां से मुझे इसे फोन करना चाहिए।
दुर्भाग्यवश मुझे केवल सी की सीमित समझ मिली है और यह महसूस किया है कि संभवत: .h फ़ाइल सही जगह नहीं है।
परियोजना का प्रकार यदि आपको इसकी आवश्यकता हो तो देखें-बेसिक-एप्लिकेशन।
आशा है कि आप मदद कर सकते हैं।
आपके प्रश्न का उत्तर देने के लिए, आपको CalcViewController का एक @ कार्यान्वयन होना चाहिए सबसे अधिक बार * .m फ़ाइल के अंदर यह @implementation रखा जाएगा यदि आपकी * .एच फाइल का नाम "ViewController.h" है, तो कार्यान्वयन "ViewController.m" में होगा।
आप तब UIViewController के प्रारंभिक फ़ंक्शन की प्रतिलिपि बना सकते हैं और उसे वहां रख सकते हैं (I नहीं पता कि डिफ़ॉल्ट init फ़ंक्शन क्या है)।
उदाहरण के लिए:
@implementation CalcViewController @ synthesize परिणाम; @ संश्लेषण इनपुट; - (आईडी) initWithNibName: (NSString *) aNibName बंडल: (NSBundle *) aBundle {self = [सुपर initWithNibName: aNibName बंडल: aBundle]; // init का UIViewController का संस्करण अगर (स्वयं) {input = [[NSString alloc] initWithString: @ ""]; // आपको एक नई स्ट्रिंग बनाना चाहिए क्योंकि आप इसे अपने डेअलोक में रिलीज करना चाहते हैं} वापसी स्व; } - (शून्य) डेअलोक {[इनपुट रिलीज़]; [सुपर डेअलोक]; } @end // CalcViewController के @implementation के अंत नोट्स:
- आप फ़ाइल का नाम बदल कर CalcViewController कर सकते हैं। मेरा मानना है कि Xcode के रिफैक्टरिंग इंजन से निपटने के लिए यह आसान है।
- आप प्रदर्शन प्रक्रम के लिए @ प्रॉपर्टी को घोषित करने की आवश्यकता नहीं है, क्योंकि आप इंटरफ़ेस बिल्डर के साथ कनेक्ट होते हैं। जब तक आप इसे कैल्शिव्यूकंट्रोलर के ग्राहकों को अक्सर बदलना नहीं चाहते हैं
संपादित करें: 28 अप्रैल, 2009: 10:20 पूर्वाह्न ईस्ट: मैं वास्तव में एक NSString को आप के रूप में आवंटित करने का सुझाव देता हूं तकनीकी रूप से इसे dealloc में रिलीज करना चाहिए।
संपादित करें: 28 अप्रैल, 2009: 11:11 पूर्वाह्न ईएसटी: मैं init के UIViewController के संस्करण का उपयोग करने के लिए @ P>
Comments
Post a Comment