2008-11-13 14 views
35

क्या एक्सकोड दृश्य स्टूडियो शैली #region मनमाने ढंग से कोड फोल्डिंग के लिए निर्देशों के समान कुछ भी समर्थन करता है?एक्सकोड क्षेत्र

उत्तर

54

नहीं, आप केवल एक्सकोड में विभिन्न परिभाषित स्कॉइंग स्तरों पर कोड फोल्ड कर सकते हैं।

फ़ंक्शन मेनू के माध्यम से नेविगेट करने के लिए आप छोटी सी चाल का उपयोग कर सकते हैं, हालांकि।

#pragma mark 

आपको एक समूह बनाने की अनुमति देता है जहां फ़ंक्शन मेनू में निम्न चिह्न लेबल दिखाई देगा। यदि लेबल एक हाइफ़न है, तो फ़ंक्शन मेनू में एक विभाजक डाला जाता है। ,

// MARK: 
// TODO: 
// FIXME: 
// !!!: 
// ???: 

जाहिर है के बाद से #pragma निशान वास्तव में पोर्टेबल नहीं है आप एक पोर्टेबल आवेदन का निर्माण कर रहे हैं और इसके साथ काम करने की जरूरत है:

इसके अलावा, टिप्पणी में निम्नलिखित लेबल समारोह मेनू में दिखाई देंगे एक कंपाइलर जो #pragma निर्देशों को अनदेखा नहीं करता है जो इसे समझ में नहीं आता है, टिप्पणी-शैली चिह्न एक सभ्य विकल्प है।

+2

सी मानक कहते हैं कि एक अनुरूप कार्यान्वयन * अनिवार्य रूप से '# प्रगमा 'निर्देशों को अनदेखा करना चाहिए जो इसे समझ में नहीं आता है। बेशक, प्रत्येक '# प्रगमा' निर्देश जो 'एसटीडीसी' से शुरू नहीं होता है, वैसे भी कार्यान्वयन-परिभाषित है, फिर भी पोर्टेबल नहीं है। – dreamlax

+0

किसी को निश्चित रूप से कस्टम कोड फोल्डिंग के लिए एक्सकोड प्लगइन बनाना चाहिए। यह बहुत उपयोगी होगा :) – brimstone

12

मैं इसके लिए नरक करने जा रहा हूँ, लेकिन यहाँ जाता है:

किसी दिए गए फ़ाइल के शीर्ष पर, डाल

#define FOLD 1 

आप कहीं भी हों, कुछ गुना एक में लपेट अगर करना चाहते हैं तो तरह ब्लॉक :

if(FOLD) { 
// your code to hide 
// more code 
} 

इससे आपको इसे दृष्टि से दूर कर दिया जाएगा।

+8

यह एक अच्छा विचार होगा, लेकिन आप केवल फ़ंक्शन स्कोप के अंदर एक if कथन डाल सकते हैं। यदि आप एक में संरचना, enum और फ़ंक्शन परिभाषा लपेट नहीं सकते हैं। – Chuck

+48

नरक में जाने के लिए +1 – MrJD

+1

अधिकांश आईडीई के लिए एक और +1 कोड फोल्डिंग के लिए प्रीप्रोसेसिंग निर्देश का समर्थन नहीं कर रहा है, -1 क्योंकि मुझे लगता है कि ऐसा इसलिए है क्योंकि वे हमें फोल्डिंग के बजाय विधि उपयोग के लिए मजबूर करना चाहते हैं, इसके लिए +1 बहुत अच्छा होगा विधि समूह, -1 क्योंकि मुझे लगता है कि ऐसा इसलिए है क्योंकि वे हमें वर्गों का उपयोग करने के लिए मजबूर करना चाहते हैं। तो हम भी हैं: पी। अगर कोई अस्तित्व में है, तो मेरी अज्ञानता क्षमा करें। –

4

वह उस स्थान पर काम नहीं करेगा जहां आप इसे सबसे अधिक चाहते हैं, यानी कार्यों या विधियों के समूह के आसपास।

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

और यदि (गुना) पूरी तरह से अनिवार्य है। बस विधि या फ़ंक्शन के अंदर ब्रेसिज़ का उपयोग करें और एक्सकोड उन्हें फोल्ड करेगा।

+4

यह आश्चर्य की बात है कि इतने सारे लोग इस बात से अनजान हैं कि आप शाखा के बिना दायरे का परिचय दे सकते हैं। – dreamlax

-3

एक अच्छा समाधान मैंने अभी पाया:

अपनी परियोजना को एक बड़े नामस्थान में रखें। बंद करें और अपने स्रोत फ़ाइल की अलग-अलग वर्गों के लिए इस नाम स्थान फिर से खोलना:

namespace myproj { // members of class MyClassA 

void MyClassA::dosomething() 
{ 
} 

void MyClassA::dosomethingelse() 
{ 
} 

} // members of class MyClassA 
namespace myproj { // members of MyClassB 

void MyClassB::dosomething() 
{ 
} 

void MyClassB::dosomethingelse() 
{ 
} 

} // members of MyClassB 
+1

यह समाधान, यदि सभी व्यवहार्य रूप से, केवल सी ++ के लिए काम करेगा क्योंकि उद्देश्य-सी नामस्थानों का समर्थन नहीं करता है – HairOfTheDog

+0

लॉल ................... – Jamil

0

कोष्ठक {} के अंदर अपने वांछित कोड रखो, और यह एक तह क्षेत्र बन जाएगा।

लेकिन आपको यह ध्यान रखना होगा कि ब्रैकेट चर के दायरे को भी परिभाषित करते हैं, इसलिए इस कोड में वेरिएबल्स घोषणाएं नहीं होनी चाहिए जिनका उपयोग इन ब्रैकेट के बाहर किया जाएगा।

//region title1 
{ 
    //region Subtitl1 
    { 

    } 
    //region Subtitl2 
    { 

    } 
} 

ऐसा कर सकते हैं::

3

इस तरह का प्रयास करें

It can do like that :

+0

नहीं, वास्तव में यह नहीं है ' टी – user884248

1

नेट शैली क्षेत्रों के लिए समर्थन के बिना, एक ही समय में अपने सभी कार्यों को संक्षिप्त करने में सक्षम किया जा रहा है अगली सबसे अच्छी बात है।

आदेश - विकल्प - पारी - तीर सभी को संक्षिप्त करने के लिए छोड़ दिया।

आदेश - विकल्प - पारी - सही तीर सभी का विस्तार करने के।

एक्सकोड ध्वस्त कार्यों की अंतिम स्थिति को याद रखेगा।

+0

एनबी: एक्सकोड 8 में, एक्सकोड को आपके फोल्डिंग को याद रखने के लिए, सुनिश्चित करें कि आपका प्रोजेक्ट प्रारूप 'एक्सकोड 8.0-संगत' पर सेट है। – Cemen