राज्यों के ऊपर विषय में मेरे प्रश्न के रूप में, आपको यह कहने के लिए आम तौर पर क्या आवश्यकताएं मिलती हैं "ठीक है, मुझे encodeWithCoder:
और initWithCoder:
इसके लिए तत्कालता की आवश्यकता है"? आम तौर पर आप ऑब्जेक्ट स्टेटस को NSUserDefaults
पर लिख सकते हैं, इसलिए जब आप विशेषज्ञों को एक बनाम दूसरे का उपयोग करने का फैसला करते हैं तो मैं उत्सुक हूं?आप एन्कोडविथकोडर का उपयोग कब करते हैं: और initWithCoder: आईफोन पर?
उत्तर
NSCoder
धारावाहिक कार्यान्वयन के मानक कोको विधि है। विवरण के लिए ऐप्पल के Archives and Serializations Programming Guide for Cocoa देखें।
उपयोगकर्ता डिफ़ॉल्ट, मूल रूप से, एक संपत्ति सूची है। संपत्ति सूचियां जेएसओएन के समान होती हैं और केवल विशिष्ट प्रकार के डेटा स्टोर कर सकती हैं - एनएसएसटींग, एनएसएनंबर, एनएसडीटा, एनएसडीएटी, एनएसएआरएआरई, एनएस डिक्शनरी। यदि आप उपयोगकर्ता डिफ़ॉल्ट में कुछ और स्टोर करने का प्रयास करते हैं, तो आपको अपवाद मिलेगा। संपत्ति सूचियां भी मनमाने ढंग से ऑब्जेक्ट ग्राफ, केवल पेड़ को संभाल नहीं सकती हैं।
आप हमेशा अपनी कस्टम स्थिति ले सकते हैं और इसे एक संपत्ति-सूची संगत डेटा संरचना में परिवर्तित कर सकते हैं, फिर इसे उपयोगकर्ता डिफ़ॉल्ट में संग्रहीत कर सकते हैं; लेकिन फिर आप मूल रूप से ऑब्जेक्ट सीरियलाइजेशन तंत्र को कार्यान्वित कर रहे हैं, और आप एनएसएआरसीवर द्वारा पहले से प्रदान किए गए अधिक शक्तिशाली व्यक्ति का भी उपयोग कर सकते हैं।
initWithCoder:
ओएस द्वारा उपयोग किया जाता है जब एक्सआईबी फाइलों को अन-संग्रहित करता है; यदि आप बारीकी से देखते हैं, तो आप देखेंगे कि initWithFrame:
आपके XIB में बनाए गए विचारों के लिए नहीं कहा जाता है; उनके पास initWithCoder:
बदलेगा।
मैं एनएससीओडर के साथ जाता हूं जब भी मेरे पास स्टोर करने के लिए कुछ जटिल डेटा होता है जिसे मुझे हाथ से संपादित नहीं करना पड़ता है। उदाहरण के लिए, मेरा ऐप Converter एनएससीओडर संग्रह में इंटरनेट से डाउनलोड मुद्रा विनिमय दरों को संग्रहीत करता है। हालांकि, यह एकमात्र चीज है जो इस तरह के संग्रह में रखती है: यूनिट परिभाषाएं, जिन्हें केवल हाथ से बदला जाता है, को एप्लिकेशन बंडल में प्लेस्ट फ़ाइलों की एक श्रृंखला में रखा जाता है, और हाल ही में चयनित इकाइयों और मूल्यों जैसी चीजें रखी जाती हैं NSUserDefaults।
- 1. मैं initWithCoder का उपयोग कब करूं: विधि?
- 2. आप "लागू करें" और "funcall" कब उपयोग करते हैं?
- 3. आप टेबल क्लस्टर का उपयोग कब करते हैं?
- 4. आप C++ में फ़ंक्शन ऑब्जेक्ट्स का उपयोग कब करते हैं?
- 5. initWithNibName और initWithCoder
- 6. SQL सर्वर में, आप कब उपयोग करते हैं और आप अर्ध-कॉलन का उपयोग कब करना चाहिए;
- 7. आप आईएमई का उपयोग कैसे करते हैं?
- 8. जावा जेनेरिक रनटाइम पर कास्टिंग का उपयोग कब करते हैं?
- 9. क्या आप क्यूटी का उपयोग करते हैं और आप इसका उपयोग क्यों करते हैं?
- 10. आप ऑपरेटर को अधिभार कब करते हैं?
- 11. आप कोड को दोबारा कब करते हैं?
- 12. हम एमवीवीएम का उपयोग कब करते हैं?
- 13. एनएससीओडर बनाम एनएस डिक्शनरी, आप कब उपयोग करते हैं?
- 14. आप आईफोन पर यूआईपीकर व्यू को कैसे कम करते हैं?
- 15. आप एसआरपी (सिंगल रिपॉन्सिबिलिटी सिद्धांत) का उल्लंघन कब करते हैं?
- 16. आप CTEST_CUSTOM_PRE_TEST का उपयोग कैसे करते हैं?
- 17. क्या आप फ़िंग का उपयोग करते हैं?
- 18. आप PowerShell का उपयोग कैसे करते हैं?
- 19. आप संरचना पर ऑफसेट() का उपयोग कैसे करते हैं?
- 20. आप स्क्वाक का उपयोग कैसे करते हैं?
- 21. क्या आप एनडपेन्स का उपयोग करते हैं?
- 22. क्या आप दावे का उपयोग करते हैं?
- 23. आप जेएसटीएल का उपयोग कैसे करते हैं?
- 24. आप (और क्यों) विरोधाभासों का उपयोग करते हैं?
- 25. क्या आप एओपी का उपयोग करते हैं? और किसके लिए?
- 26. क्या आप प्रोग्राम करते समय इनवेरिएंट का उपयोग करते हैं?
- 27. initWithCoder में बनाए रखने का उपयोग करें?
- 28. आप कैसे जानते हैं कि फोल्ड-बाएं का उपयोग कब करें और फोल्ड-राइट का उपयोग कब करें?
- 29. आप अपने अपवादों का नाम कैसे व्यवस्थित करते हैं और व्यवस्थित करते हैं?
- 30. आईफोन पर UIView बनाम UIViewController का उपयोग कब करें?
हाय बेन, जब मैं XIB का उपयोग कर रहा हूं, तो मुझे इस विधि के बिना ठीक ठीक हो जाता है। विचारों के लिए मैं प्रोग्रामेटिक रूप से निर्माण करता हूं, मैं आमतौर पर लोडव्यू के साथ ठीक हूं। विचारों के लिए मैं आईबी के साथ निर्माण करता हूं, मैं viewDidLoad {} का उपयोग करता हूं। तो मैं समझने की कोशिश कर रहा हूं जब initWithCoder का उपयोग करना समझ में आता है: – Coocoo4Cocoa