आपको अपनी निरंतर स्ट्रिंग इस प्रकार घोषित करनी चाहिए:
NSString * const kSomeConstantString = @""; // constant pointer
के बजाय:
const NSString * kSomeConstantString = @""; // pointer to constant
// equivalent to
NSString const * kSomeConstantString = @"";
पूर्व NSString
वस्तु के लिए एक स्थिर सूचक है , जबकि उत्तरार्द्ध किसी स्थिर NSString
वस्तु का सूचक है ।
एक का उपयोग करते हुए NSString * const
एक अलग करने के लिए बात करने के लिए kSomeConstantString फिर नियत करने से रोकता है आप NSString
वस्तु।
विधि isEqualToString:
प्रकार के एक तर्क की उम्मीद करती है NSString *
। यदि आप एक निरंतर स्ट्रिंग ( const NSString *
) को पॉइंटर पास करते हैं, तो आप अपेक्षा करते हैं कि आप कुछ अलग कर रहे हैं।
इसके अलावा, NSString
ऑब्जेक्ट पहले से ही अपरिवर्तनीय हैं, इसलिए उन्हें बनाना const NSString
अर्थहीन है।