यहाँ मेरी iOS ऐप्लिकेशन से कोड का एक टुकड़ा है:आप उद्देश्य सी पैरामीटर्स के एक्सकोड के ऑटो इंडेंटेशन को कैसे ट्वीक करते हैं?
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Do you like my hat?"
message:@"If so, please help spread the word by rating our app now?"
delegate:nil
cancelButtonTitle:@"No Thanks"
otherButtonTitles:@"Sure!", @"Maybe Later", nil
];
क्यों Xcode मांगपत्र लाइनों अब तक खूनी करता है? एक पुराने पर्ल, रूबी, और जावास्क्रिप्ट बंदर होने के नाते, मैं और अधिक इस तरह मैन्युअल रूप से इसे इंडेंट करने के लिए इच्छुक हो जाएगा:
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle: @"Do you like my hat?"
message: @"If so, please help spread the word by rating our app now?"
delegate: nil
cancelButtonTitle: @"No Thanks"
otherButtonTitles: @"Sure!", @"Maybe Later", nil
];
तो पैरामीटर के नाम और मान सब बाईं ओर संरेखित, और दांतेदार केवल एक ही स्तर हैं (4 रिक्त स्थान मेरे लिए)। यह बहुत कम स्क्रीन रीयल-एस्टेट का उपयोग करता है, और इसकी संभावना कम है कि मुझे अपने मैकबुक एयर पर रैपिंग लाइनों (जो दूर-दराज के इंडेंट किए गए सामान को पढ़ने के लिए भी मुश्किल बनाती है) से निपटना होगा।
हालांकि, मुझे लगता है कि कुछ कारण ऐप्पल पहली विधि पसंद करता है, और इसलिए एक्सकोड इंडेंट इस तरह से है। या वहाँ है?
तो मैं दो प्रश्न:
- आप अपने उद्देश्य सी कोड में मांगपत्र विधि मानकों पसंद करते हैं?
- आप अपनी पसंदीदा इंडेंटेशन शैली के साथ प्रारूपित करने के लिए एक्सकोड कैसे बदलते हैं?
यहां एक पवित्र युद्ध शुरू करने की कोशिश नहीं कर रहा है; मैं उद्देश्य-सी प्रोग्रामर के बीच सबसे अच्छा प्रथाओं के बारे में अधिक उत्सुक हूं, एक्सकोड उन प्रथाओं के साथ कैसे मदद करता है, और यह पता लगाने के लिए कि डिफ़ॉल्ट तरीके से एक्सकोड के लिए कोई अच्छा कारण है या नहीं।
अद्यतन: टिप्पणीकर्ताओं और जवाब का कहना है कि डिफ़ॉल्ट स्वरूपण उनके कोलन में पैरामीटर संरेखित करता है। मुझे याद रखना चाहिए था कि पोस्ट करने से पहले, क्योंकि मैंने निश्चित रूप से इसे देखा है, और जब सबसे लंबी वस्तु इंडेंट नहीं होती है, तो यह बहुत अच्छी लग सकती है। लेकिन मुझे लगता है कि, आमतौर पर, सबसे लंबी वस्तु बहुत अधिक इंडेंट है। उदाहरण के लिए:
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle:@"Do you like my hat?"
message:@"If so, please help spread the word by rating our app now?"
delegate:nil
cancelButtonTitle:@"No Thanks"
otherButtonTitles:@"Sure!", @"Maybe Later", nil
];
वह क्यों है? यहां तक कि अगर मैं उन्हें कोलों में संरेखित करना चाहता था (और मैंने उन्हें अक्सर ऐसा करने के लिए हाथ से स्वरूपित किया है), तो उन्हें बहुत इंडेंट करने के लिए मूर्खतापूर्ण लगता है। यह उद्घाटन कॉलन के स्तर पर इंडेंट करने का आग्रह क्यों करता है? क्यों न केवल इंडेंटेशन स्तर, समापन ब्रैकेट के साथ इंडेंटेशन "ब्लॉक" के अंत को दिखाने के लिए बाहर निकला? उदाहरण के लिए:
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle:@"Do you like my hat?"
message:@"If so, please help spread the word by rating our app now?"
delegate:nil
cancelButtonTitle:@"No Thanks"
otherButtonTitles:@"Sure!", @"Maybe Later", nil
];
यह the Google style guide's line length recommendation तुलना में एक बेहतर डिफ़ॉल्ट होने के लिए, कोई है?
क्या पैरामीटर को प्रारूपित करने के लिए एक्सकोड को ट्विक करने का कोई तरीका है?
"कैसे आप इंडेंट करने के लिए पसंद करते हैं ..." है [नहीं एक अच्छा stackoverflow सवाल] (http://stackoverflow.com/faq#dontask)। "आप कैसे एक्सकोड को ट्विक करते हैं ..." के लिए, यह स्वचालित रूप से बहु-लाइन चयनकर्ताओं को अलग-अलग इंडेंट करने के लिए कोई विकल्प नहीं है। –
एफडब्ल्यूआईडब्ल्यू, आप इनिट के पहले एक नई लाइन जोड़कर एक समान व्यवहार प्राप्त कर सकते हैं। यह कोलों को लाइन करने के लिए ऑटो इंडेंट्स। – jrturton
@robmayoff: अच्छा बिंदु, धन्यवाद। मैंने सवाल अपडेट कर लिया है। – theory