2010-05-26 8 views
5

मुझे पता है कि स्थिरांक k उपसर्ग के साथ शुरू होते हैं, लेकिन क्या किसी के पास अपना निरंतर उपसर्ग है, इसलिए वे एप्पल के बजाय आसानी से अपने स्थिरांक पर पूरा कर सकते हैं?क्या कोको में * आपके * निरंतर/स्थैतिक चर के लिए कोई उपयोगी नामकरण सम्मेलन है?

मैं अपनी कंपनी के नाम के कारण अपने वर्गों के लिए तीन अक्षर उपसर्ग का उपयोग करता हूं, आइए इसका OMG दिखाएं। मैंने अपने स्थिरांक को omgkConstantName के साथ उपसर्ग करने की कोशिश की लेकिन यह बहुत संतोषजनक नहीं है। मैं kk या ok ( ओएमजी से भी है।) या शायद मुझे कॉमगोनस्टेंटनाम करना चाहिए, जो अधिक कोको-आश लगता है?

यह आपके स्वयं के स्थिरांकों को जल्दी से प्राप्त करने में वास्तव में उपयोगी लगता है, वैसे ही आप अपनी कक्षाओं में जाना चाहेंगे। क्या कोई ऐसा करता है? क्या यह भयानक कोको शैली है?

इसके अलावा, स्थिर चर के लिए एक अच्छा नामकरण सम्मेलन है जो आप केवल एक वर्ग में उपयोग करेंगे, जैसे JSON शब्दकोश के लिए कुंजी? क्या उनके पास k होना चाहिए? क्या उन्हें अपरकेस शुरू करना चाहिए, या क्या वे सामान्य केस सम्मेलनों का पालन करते हैं?

// Static Variables 
static NSString *searchTextKey = @"searchText"; 
static NSString *searchResultsKey = @"searchResults"; 
(more) 

उत्तर

6

मैं लगातार मेरी सार्वजनिक स्थिरांक के लिए kJAFoo उपयोग करने के लिए (या kXXFoo जहां XX एक परियोजना उपसर्ग है) की कोशिश लेकिन आम तौर पर enums या एक कार्यान्वयन फ़ाइल के अंदर static const रों लिए kFoo का उपयोग करें। इसी तरह, मैं दुर्लभ मामलों में sFoo स्थिर चर के लिएका उपयोग करता हूं जहां मैं निर्यात किए गए ग्लोबल्स का उपयोग करता हूं।

इनमें से कोई भी मामला नामांकन कक्षाओं (और आयातित वर्गों पर श्रेणियों में विधियों) के रूप में महत्वपूर्ण नहीं है, हालांकि, अधिकांश प्रकार के संघर्ष रनटाइम के बजाय संकलन या लिंक समय पर उभरेंगे।

+0

यह कम या ज्यादा है कि मैं इसे कैसे करता हूं। हालांकि यह व्यक्तिपरक है। – zekel

+1

ओह यह बहुत स्पष्ट और तर्क लगता है। 'const ** के लिए ** k **,' ex ** के लिए ** g ** और 'static 'के लिए ** ** **। * बाहरी लिंक * 2 या 3 अक्षर कोड के साथ। ऐप्पल यह भी कहता है कि आपको केवल अक्षर कोड के बजाय बाहरी लिंक्ड वेरिएबल (* जी * और * के *) में * पूरे वर्ग का नाम * का उपयोग करना चाहिए। – Binarian

+0

** स्टेटिक कॉन्स ** के साथ क्या करना है? केवल ** के * और फिर * पास्कल केस * जोड़ें ... 'केपॉइंट्स – Binarian

2

मैं आमतौर पर स्थिरांक पास्कल केस बना देता हूं।

यदि आप सब कुछ पर एक उपसर्ग डालने के 'नेमस्पेसिंग सम्मेलन' का पालन करना चुनते हैं तो आप इसका भी उपयोग करेंगे।

तो मैं सामान्य रूप से

static NSString *SearchTextKey = @"searchText"; 

आप इसे नाम स्थान के लिए चुन सकते हैं जो हालांकि यह होना होता है करना चाहते हैं

static NSString *ZKSearchTextKey = @"searchText"; 

सामान्य तौर पर मैं केवल नाम स्थान बातें (अपने उपसर्ग संभालने ZK है) कि Google की सिफारिश के बाद, कई परियोजनाओं में उपयोग किया जाता है (या कम से कम जब मैं अपने नामकरण सम्मेलन पर बस रहा था)।

सबसे महत्वपूर्ण बात यह है कि जो भी सम्मेलन आप तय करते हैं। इसे चिपकाएं और सुसंगत रहें (कम से कम किसी दिए गए प्रोजेक्ट में)। एक निश्चित बिंदु पर दूसरा अनुमान लगाता है कि आप समय बर्बाद कर रहे हैं। विशेष रूप से वास्तविक const रों जो प्रतीकों निर्यात किया जाता है - -

+0

निश्चित रूप से स्थिरता के बारे में सहमत हैं।मैं बस एक नया बहु-एक्सकोड-प्रोजेक्ट प्रोजेक्ट शुरू कर रहा हूं और स्टाइल सम्मेलन को स्थापित करने का अवसर प्राप्त कर रहा हूं। मुझे लगता है कि मैं उपसर्ग के रूप में 'कॉमग' की ओर झुका रहा हूं। मुझे स्थिरांक और कक्षाओं के बीच बताने में सक्षम होना पसंद है। – zekel

1

मैं आमतौर पर कक्षाओं के समान उपसर्ग/पूंजीकरण सम्मेलन का पालन करता हूं, इसलिए कोको में NSTouchPhaseBegan हो सकता है कि मेरे पास GLTuneNameKey हो।

6

ऐप्पल की Coding Guidelines for Cocoa कार्यों के लिए गणनाओं के लिए समान नामकरण सम्मेलनों का उपयोग करने की अनुशंसा करता है। इस सलाह के बाद, OMGConstantName सही होगा।

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