2012-04-29 17 views
7

मैं समझने की कोशिश कर रहा हूं कि कोको में चीजें कैसे काम करती हैं लेकिन मैं एक चीज़ से संघर्ष कर रहा हूं। मैंने http://cocoawithlove.com/2010/09/minimalist-cocoa-programming.html और http://casperbhansen.wordpress.com/2010/08/15/dev-tip-nibless-development/ देखा और मुझे लगता है कि मैं कुछ हद तक समझ गया।एक न्यूनतम दस्तावेज़-आधारित ऐप का ट्यूटोरियल/उदाहरण

अब, मैं ऐसा करना चाहता हूं लेकिन "दस्तावेज़-आधारित एप्लिकेशन" के लिए। कृपया, क्या किसी को उपरोक्त के समान ट्यूटोरियल या उदाहरण के बारे में पता है? वैकल्पिक रूप से, इसे काम करने के लिए मुझे क्या करने की ज़रूरत है? मुझे लगता है कि मुझे NSDocumentController बनाने की आवश्यकता है - लेकिन यह एनएसएप्लिकेशंस से कैसे संबंधित है? और मैं वहां से NSDocument बना सकता हूं? वाकई, मैं थोड़ा खो गया हूं ...

उत्तर

10

वह छह महीने पहले था! मैं एक सभ्य ट्यूटोरियल नहीं मिल रहा है या तो लेकिन डिफ़ॉल्ट Xcode प्रोजेक्ट टेम्पलेट का उपयोग कर एक नई परियोजना के साथ शुरू किया था: जब आप एक नई परियोजना शुरू

enter image description here

मैं सेटअप Xcode आपके लिए बनाए गए के साथ बाहर शुरू किए जाने और टुकड़ा कार्यान्वित टुकड़ा के रूप में मैं साथ चला गया। वहाँ कुछ अच्छा पढ़ने Stackoverflow पर यहां विभिन्न नियंत्रक वर्गों के उपयोग के बारे में है, लेकिन यहाँ मैं क्या किया है:

  • दस्तावेज़ वर्ग, Xcode द्वारा उत्पन्न, मेरी शीर्ष स्तर नियंत्रक है। मैं NSDocumentController का उपयोग नहीं करता हूं।
  • मेरे ऐप के प्रत्येक उपयोग मामले में कई NSViewControllers हैं जो उपयोग केस के विभिन्न दृश्यों का प्रबंधन करते हैं। इन नियंत्रकों को गतिशील रूप से अंदर और बाहर बदल दिया जाता है। शीर्ष स्तर नियंत्रक एनएसडी दस्तावेज़ वर्ग (मेरे मामले में एनएसपीर्सिस्टेंट डॉक्यूमेंट द्वारा प्रबंधित किए जाते हैं क्योंकि मैं कोर डेटा का उपयोग करता हूं)।

मैं किसी भी तरह से एक विशेषज्ञ नहीं हूं, इसलिए मैं बेहतर दृष्टिकोण के लिए सही हूं, लेकिन अब तक इस सेटअप को आसान बनाना, बनाए रखना आसान और विस्तार करना आसान है।

नोट: कोर डेटा का उपयोग वैकल्पिक है लेकिन समय के साथ में मैं इसे प्यार करने आया हूं और सोचता हूं कि यह बहुत शक्तिशाली और एक बड़ा समय बचाने वाला है। जब आप कोर डेटा का उपयोग न करने का निर्णय लेते हैं, तो उपरोक्त सेटअप अभी भी काम करेगा लेकिन आपको अपना डेटा प्रबंधित करना होगा।

संपादित करें: यह post NSDocumentController की प्रासंगिकता बताता है।

EDIT2: This one ऐप्पल से भी एक दिलचस्प पढ़ा है।

EDIT3: आपको एनआईबी (या एक्सआईबी जिन्हें अब कहा जाता है) की आवश्यकता है क्योंकि उनमें आपके ऐप का यूआई है। आप उन्हें एक दृश्य नियंत्रक के माध्यम से में खींच (उपवर्ग NSViewController):

NSString *aControllerName = [anIdentifier stringByAppendingString: @"ViewController"]; 
NSString *aNibName = [anIdentifier stringByAppendingString: @"View"]; 
Class aControllerClass = NSClassFromString(aControllerName); 
[self setCurrentController: [[aControllerClass alloc] initWithNibName: aNibName bundle: [NSBundle mainBundle]]]; 

ऊपर anIdentifier में Department, जो DepartmentViewController का दृष्टांत और XIB नाम DeparmentView लोड होगा हो सकता है।

आप अपने डेटा को स्टोर करने के लिए plists का उपयोग कर सकते हैं लेकिन यह एक आवश्यकता नहीं है। अपने ऐप्स डेटा को स्टोर करने के कई तरीके हैं। आपको ऐप्पल के विभिन्न आर्किटेक्चर के बारे में पढ़ना होगा और अपना खुद का विकल्प बनाना होगा।

+0

मैं सबसे सरल, कैनोलिक तरीके खोजने की कोशिश करता हूं, मुझे वास्तव में उपरोक्त ट्यूटोरियल पसंद आया क्योंकि वे आंतरिक काम को अच्छी तरह से समझाते हैं। कृपया, क्या आप कुछ कोड पोस्ट करना चाहते हैं? आपने 'NSDocumentController' का उपयोग क्यों नहीं किया? और अगर मैं इसे इस्तेमाल करना चाहता था, तो मुझे इसे कहां रखना चाहिए? मुझे लगता है कि मेरे पास सिर्फ एक दृश्य होगा - प्रत्येक दस्तावेज़ के लिए एक विंडो। –

+0

मैंने अपने पिछले प्रश्न पर NSDocumentController के उपयोग के बारे में एक स्पष्टीकरण जोड़ा। – Roger

+0

@EcirHana: रोजर के प्रश्न पर स्वीकृत उत्तर पर भी मेरी टिप्पणी देखें। –