मैं एक महत्वपूर्ण इसके अलावा के साथ एलेक्स Coplan के जवाब के साथ सहमत हैं।
"Constants.h" नामक फ़ाइल में (या/ई आप चाहते हैं डब्ल्यू) अपने सभी स्थिरांक रखो
संपादित करें:
- जब मैं तीन साल पहले इस सवाल का जवाब, मैं पर था
#define
बैंडवैगन, एक संशोधन के लिए नीचे की जाँच करें।
Constants.h
#define kFilterDate @"date"
#define kFilterRadius @"radius"
#define kFilterSort @"sort"
//Global Strings
#define kDividingString @"/"
//Strings
#define kTour @"Tour"
#define kToursKey @"tours"
लेकिन इसके बजाय आप इसकी आवश्यकता है किसी भी फाइल में आयात करने की, यह आपके उपसर्ग फ़ाइल में आयात ताकि आपके हेडर के सभी यह स्वचालित रूप से आयात अपनी परियोजना भर में।
Project_Prefix.pch
//
// Prefix header for all source files of the project
//
#ifdef __OBJC__
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import "Constants.h"
#endif
संशोधन
सभी हालांकि सभी पिछले जानकारी अभी भी काम करेगा, वहाँ कुछ बातें हम थोड़ा और अधिक हमारे स्थिरांक के बारे में सुरक्षित रहने के लिए कर सकते हैं।
स्थिरांक चर
//Filters
FOUNDATION_EXPORT NSString *const kFilterDate;
FOUNDATION_EXPORT NSString *const kFilterRadius;
FOUNDATION_EXPORT NSString *const kFilterSort;
//Global Strings
FOUNDATION_EXPORT NSString *const kDividingString;
//Strings
FOUNDATION_EXPORT NSString *const kTour;
FOUNDATION_EXPORT NSString *const kToursKey;
और में का उपयोग कर अपने Constants.h
फ़ाइल Constants.m
//Filters
NSString *const kFilterDate = @"date";
NSString *const kFilterRadius = @"radius";
NSString *const kFilterSort = @"sort";
//Global Strings
NSString *const kDividingString = @"/";
//Strings
NSString *const kTour = @"Tour";
NSString *const kToursKey = @"tours";
यह अभी भी ऊपर की तरह अपने उपसर्ग फ़ाइल में आयात किया जा सकता है में अपने स्थिरांक बनाएं, लेकिन केवल स्थिरांक है कि वास्तव में कर रहे हैं का उपयोग करें ऐसा करने के लिए फ़ाइल में वैश्विक। कई जगहों पर अक्सर उपयोग किया जाता है। इस फ़ाइल में आपके सभी स्थिरांक को डंप करने से आपका कोड होगा जो किसी भी स्थिरांक को स्थिरांक फ़ाइल के साथ जोड़ता है। इस प्रकार, यदि आप कोड का पुन: उपयोग करने का प्रयास करते हैं, तो स्थिरांक फ़ाइल को इसके साथ आना होगा।यह हमेशा जरूरी नहीं है, और कई बार इरादा है (जो ठीक है), लेकिन सीमित निर्भरता हमेशा एक अच्छा विचार है।
संशोधन के बारे में कुछ बातें:
FOUNDATION_EXPORT
बनाम extern
। पहला सी और सी ++ के लिए अलग संकलित करता है। इसका मूल रूप से extern
है, लेकिन सी ++ में "सी" ध्वज जोड़ देगा।
consts
बनाम defines
। consts
प्रकार सुरक्षित और सम्मान के दायरे हैं। defines
सटीक विपरीत हैं।
मुझे वैश्विक स्थिरांक के लिए '.h .m' का उपयोग करने से नफरत है। प्रत्येक वैरिएबल नाम लिखने के लिए TWICE एक दर्द है! – Hlung
स्वच्छ, सुसंगत, पठनीय कोड होने से आपके दर्द से दोगुनी गुना 10 गुना अधिक है। – ColdLogic
निम्नलिखित मामले के लिए मुझे क्या करना चाहिए? मुझे त्रुटि है "प्रारंभिक तत्व USER_LIST_URL के लिए समय स्थिरता संकलित नहीं करता है"
NSString *const SERVER_URL = @"http://www.google.com"; NSString *const USER_LIST_URL = [NSString stringWithFormat:@"%@/xml/index.cfm",SERVER_URL];
–