आपको अपनी निरंतर स्ट्रिंग इस प्रकार घोषित करनी चाहिए:
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अर्थहीन है।