objective c - Aaron Hillegass _Cocoa Programming for Mac OS X_ Chapter 9 Question -
एरोन हिलेलेज 'में कोको प्रोग्रामिंग फॉर मैक ओएस एक्स , अध्याय 9, खंड "शुरू सम्मिलित करने पर संपादन ", वह बताता है कि ठीक उसी तरह कैसे करें जो बात मुझे उलझन में थी, वह यह थी कि उसने अन्य सामानों के गुच्छा किया यहां पूर्ण कोड सूचीबद्ध है:
- (IBAction) बनाओ कर्मचारी: (आईडी) प्रेषक {NSWindow * w = [tableView window]; // किसी भी संपादन को समाप्त करने का प्रयास करें जो कि BOOL संपादन की जगह ले रही है = [w बनामप्रिस्ट रेस्पॉन्डर: w]; अगर (! संपादन सम्मिलित) {NSLog (@ "संपादन समाप्त करने में असमर्थ"); वापसी; } NSUndoManager * undo = [स्व पूर्ववत प्रबंधक]; // क्या इस घटना से पहले ही एक संपादन हुआ है? अगर ([groupingLevel को वापस लाएं]) {// अंतिम समूह को बंद करें [एंडो एंडयू ग्रुपिंग] को समाप्त करें; // एक नया समूह खोलें [पूर्ववत करेंउन्डरसमूहिंग]; } // वस्तु वस्तु बनाएं * p = [कर्मचारी नियंत्रक newObject]; // इसे 'कर्मचारी कंट्रोलर' की सामग्री सरणी में जोड़ें [कर्मचारी नियंत्रक addObject: p]; [पी रिलीज]; // पुन: सॉर्ट करें (यदि उपयोगकर्ता ने एक स्तंभ को हल किया है) [कर्मचारी नियंत्रक पुनर्व्यवस्थित ऑब्जेक्ट]; // सॉर्ट किए गए सरणी प्राप्त करें NSArray * a = [कर्मचारी नियंत्रक व्यवस्थित ऑब्जेक्ट]; // ऑब्जेक्ट का पता लगाएं बस इंट पंक्ति = [एक इंडेक्सऑफ़ ऑब्जेक्ट आईडी: पी]; एनएसएलॉग (@ "पंक्ति% d में% की संपादन शुरू करना", पी, पंक्ति); // पहले कॉलम में संपादन शुरू करें [तालिका दृश्य संपादित करें स्तंभ: 0 पंक्ति: पंक्ति के साथआवश्यकः शून्य चयन: हाँ]; }
मेरे पास इसके बारे में दो प्रश्न हैं:
1) आप कैसे जानते हैं कि आपको ये सब सामान करना है? क्या ऐप्पल के डॉक्टर में एक 'चेकलिस्ट' या कुछ है? अनुभव?
2) क्या यह एक सरणी नियंत्रक के पूरे उद्देश्य को हराने की नहीं है यदि आप अभी भी सभी तरीकों को अपने दम पर लिखना चाहते हैं?
संपादित करें: मैं मुख्य रूप से कैसे इन लाइनों को इन्हें पता था: (क्योंकि बाकी सब कुछ बहुत ही बुनियादी और स्पष्ट है)
NSWindow * w = [tableView window]; // किसी भी संपादन को समाप्त करने का प्रयास करें जो कि BOOL संपादन की जगह ले रही है = [w बनामप्रिस्ट रेस्पॉन्डर: w]; अगर (! संपादन सम्मिलित) {NSLog (@ "संपादन समाप्त करने में असमर्थ"); वापसी; } NSUndoManager * undo = [स्व पूर्ववत प्रबंधक]; // क्या इस घटना से पहले ही एक संपादन हुआ है? अगर ([groupingLevel को वापस लाएं]) {// अंतिम समूह को बंद करें [एंडो एंडयू ग्रुपिंग] को समाप्त करें; // एक नया समूह खोलें [पूर्ववत करेंउन्डरसमूहिंग]; }
1) आप कैसे जानते हैं कि आपको सभी करना चाहिए वह सामान? क्या ऐप्पल के डॉक्टर में एक 'चेकलिस्ट' या कुछ है? अनुभव?
आप सही हैं, यह कोड प्रारंभिक कार्यान्वयन करने वाले अधिकांश लोगों के लिए नहीं होगा (मुझे लगता है कि इस पुस्तक में यही है। आपको हारून के अनुभव से लाभ मिलता है)।
यह कोड एक या अधिक बग रिपोर्ट के परिणाम के रूप में आ जाएगा दूसरे शब्दों में, आप शुरू में उस कोड के साथ नहीं आएंगे, लेकिन आप अंततः होगा।
इसे अपने लिए प्रयास करें उस कोड को निकालें, फिर देखें कि क्या आप चल रहे एप्लिकेशन में समस्याएं पा सकते हैं। उन समस्याओं को हल करने के लिए एसडीके ज्ञान और डीबगिंग कौशल का एक संयोजन की आवश्यकता होती है। दोनों अनुभव के साथ बढ़ते हैं।
2) क्या यह एक सरणी नियंत्रक के पूरे उद्देश्य को पराजित नहीं करता है यदि आप अभी भी सभी तरीकों को अपने दम पर लिखना चाहते हैं?
कोई तर्क सकता है कि टेबलव्यू के व्यवहार को संशोधित करने की क्षमता सरणी नियंत्रक का संपूर्ण बिंदु है (आपके एप्लिकेशन के डिज़ाइन के एक तत्व के रूप में)।
Comments
Post a Comment