2011-04-15 13 views
20

मैंने ऐप्पल के एमवीसी article पढ़ा है और विभिन्न चीजों के बारे में उलझन में हूं। सबसे पहले ऐप्पल लगभग सभी नमूना अनुप्रयोगों में व्यू और कंट्रोलर के संयोजन का उपयोग करता है जो ठीक है और मुझे यह पसंद है लेकिन वे इस लेख में खुद का विरोधाभास करते हैं क्योंकि उन्होंने कहा कि व्यू को नियंत्रकों आदि पर भरोसा नहीं करना चाहिए।आईओएस ऐप्स में इस्तेमाल किए गए एमवीसी पैटर्न को समझना

मेरा मुख्य प्रश्न क्या किसी के पास ऐप्पल के नमूना आईओएस परियोजनाओं में से एक का लिंक है जो एमवीसी पैटर्न का एक अच्छा उदाहरण है - डेटा पुनर्प्राप्ति आदि के साथ क्योंकि मैं पैटर्न के मॉडल भाग को पूरी तरह से समझ नहीं पा रहा हूं।

मैं एक 'डोमेन वस्तु' और एक मॉडल वस्तु के बीच का अंतर समझ में नहीं आता। उदाहरण के लिए यदि मैं ऑर्डर की एक सूची पुनर्प्राप्त करना चाहता हूं तो यह मॉडल क्लास ऑर्डर में होगा। क्या मेरे पास एक और क्लास ऑर्डर होगा जिसमें ऑर्डरडेट, ऑर्डर नम्बर इत्यादि जैसी संपत्तियां होंगी या यह कैसे काम करेगी?

+2

सभी ऐप्पल नमूना कोड उचित एमवीसी का पालन नहीं करते हैं। नमूना कोड एक एपीआई डेमो/शो करना है। इन नमूने में मॉडल ऑब्जेक्ट NSMutableDictionary ऑब्जेक्ट जितना सरल हो सकता है। –

उत्तर

10

यह sample code एक UITableView लोड करने और प्रदर्शित करने के लिए एक बहु-चरण दृष्टिकोण प्रदर्शित करता है। मुझे लगता है कि इसमें गोता लगाने में वाकई दिलचस्प है। यह काम में एमवीसी दिखाएगा।

5

मुझे विश्वास है कि निम्नलिखित कोड है आप कैसे आईओएस आवेदन में MVC के साथ काम करने की वजह से इसके विवरण का कहना है समझ में मदद मिलेगी:

"MVCNetworking एक नमूना दिखाता है कि का उपयोग करके नेटवर्क आवेदन बनाने का तरीका है मॉडल-व्यू-नियंत्रक डिजाइन पैटर्न। विशेष रूप से, यह एक वेब सर्वर से गैलरी के XML विवरण, थंबनेल और तस्वीरें हो रही द्वारा एक फोटो गैलरी प्रदर्शित करता है, और स्थानीय स्तर पर इस जानकारी को कैश करने के लिए कोर डाटा उपयोग करता है। "

मॉडल → डेटा

देखें → उपयोगकर्ता इंटरफ़ेस:

http://developer.apple.com/library/ios/#samplecode/MVCNetworking/Introduction/Intro.html#//apple_ref/doc/uid/DTS40010443

+3

जिस भाग पर मैं उलझन में हूं वह है कि एचटीपी वेब सेवा कॉल कहां रखा जाए। अतीत में, जब मैंने एमएस एमवीसी पर काम किया, तो हमने वेब सेवा कॉल को नियंत्रकों में रखा। लेकिन आईओएस विकास के लिए, मुझे मॉडल में http वेब सेवा कॉल जोड़ने पर सुझाव मिले। मुझे लगता है कि किसी भी तरह से काम करता है, लेकिन मुझे यकीन नहीं है कि एक अच्छा एमवीसी पैटर्न किस तरह से है .. क्या आपको इस पर कोई अंतर्दृष्टि है? धन्यवाद! – trillions

+0

मैं वैसे ही हूं, मैं उन्हें अलग रखता हूं। हालांकि मैंने कार्यान्वयन देखा है जहां सेवा कॉल मॉडल में हैं जो काफी अच्छी तरह से काम करते हैं। मेरा उदाहरण जो आता है वह uiimage के लिए है, जहां सेवा कॉल उस वर्ग में एम्बेड किया गया है ताकि प्लेसहोल्डर छवि दिखाते समय वह वेब से एक छवि पुनर्प्राप्त कर सके। लेकिन आम तौर पर मुझे इस नमूने में कोड संरचना दिखाई देती है http://developer.apple.com/library/ios/#samplecode/LazyTableImages/Introduction/Intro.html – Biclops

5

यहाँ मॉडल-व्यू-नियंत्रक (भी MVC भी कहते हैं) पैटर्न अपने ऐप के मुख्य भागों के लिए नक्शे का तरीका बताया गया

नियंत्रक → कोर लॉजिक

यह समझाता है f नमूना कोड के साथ ully

http://www.hollance.com/2011/04/making-your-classes-talk-to-each-other-part-1/

enter image description here

+0

"मेरा मुख्य प्रश्न यह है कि किसी के पास ऐप्पल के किसी एक का लिंक है नमूना आईओएस परियोजनाएं जो एमवीसी पैटर्न " – Fattie

+0

का उत्तर केवल कोड का एक अच्छा उदाहरण है। यह एमवीसी के बारे में पूरी तरह से वर्णन नहीं करता है – codercat

+0

मुझे उम्मीद है कि ओपी को एमवीसी सही मिला क्योंकि उसने 3 साल पहले सवाल पोस्ट किया था। – vikingosegundo

3

यह सबसे अच्छा है, फिर भी इसे आसानी से समझा मैं का सामना करना पड़ा (RayWenderlich से लिया गया)

"MVC के पीछे विचार यह है कि
है अब तक - दृश्यों को केवल इस बात की परवाह करनी चाहिए कि उन्हें कैसे प्रस्तुत किया गया है,
- मॉडल केवल अपने डेटा,
पर ध्यान देना चाहिए - और नियंत्रकों को माररी वें ई दो बिना अपनी आंतरिक संरचना के बारे में बहुत कुछ जानना। "

5
  • मॉडल आवेदन के दिमाग है। यह गणना करता है और स्वयं के लिए एक आभासी दुनिया बनाता है जो विचारों और नियंत्रकों के बिना रह सकता है।दूसरे शब्दों में, बिना किसी चेहरे के अपने मॉडल की आभासी प्रति के रूप में मॉडल मॉडल के बारे में सोचें!

  • एक दृश्य खिड़की अपने उपयोगकर्ताओं को अपनी आवेदन के साथ बातचीत के माध्यम से जो है। यह दिखाता है कि अधिकांश समय मॉडल के अंदर क्या है, लेकिन इसके अतिरिक्त, यह उपयोगकर्ताओं के इंटरैक्शन को स्वीकार करता है। उपयोगकर्ता और आपके आवेदन के बीच कोई भी इंटरैक्शन को एक दृश्य, पर भेजा जाता है जिसे उसके बाद व्यू कंट्रोलर द्वारा कैप्चर किया जा सकता है और मॉडल पर भेजा जा सकता है।

  • आईओएस प्रोग्रामिंग में नियंत्रक आमतौर पर व्यू कंट्रोलर को संदर्भित करता है। मॉडल और आपके विचारों के बीच एक पुल के रूप में दृश्य नियंत्रकों के बारे में सोचें। वे समझते हैं कि एक तरफ क्या हो रहा है (क्या उपयोगकर्ता दृश्य पक्ष पर है, या मॉडल द्वारा प्रदान की गई जानकारी) और उस जानकारी का उपयोग दूसरी तरफ बदलने के लिए करें।

+0

अच्छा स्पष्टीकरण @ नमन – iPatel

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