मेरे पास एक सुलभ विधि वाला एक वर्ग है जो कॉल किए जाने पर NSString
वापस भेजता है।यदि दो एनएसएसटींग ऑब्जेक्ट्स की तुलना करते समय "ए == बी" झूठा है
myString = cell.textLabel.text;
जब मैं उस विधि को फोन करके स्ट्रिंग को पुनः प्राप्त, मैं इसे में एक और स्ट्रिंग के लिए आवंटित:
[MyClass getMyString]
कि कक्षा में स्ट्रिंग चर वास्तव में एक तालिका के didSelectRowAtIndexPath:
हिस्सा इस तरह में असाइन किया गया है वर्ग है कि यह कहा जाता है और एक स्ट्रिंग मैं
NSString *mySecondString;
mySecondString = @"my value";
if(mySecondString == myString){
i = 9;
}
मैं कोड और हर बार यह अगर बयान का मूल्यांकन करता है के माध्यम से कदम रखा है परिभाषित किया है की तुलना में, यह है i=9
से ठीक पहले kips और अगले else if
कथन पर जाता है। यह क्यों होगा? वे एक ही मूल्य के रूप में मूल्यांकन क्यों नहीं करते? यदि आप डिबगिंग के दौरान प्रत्येक कर्सर पर अपने कर्सर को घुमाते हैं तो वे दिखाएंगे कि उनके पास एक ही वैल्यू है, लेकिन कुछ कारणों के लिए कोड ऐसा नहीं है जैसा कि मैं उम्मीद करता हूं और 9
i
पर असाइन करता हूं।
कोई विचार?
मुझे आश्चर्य है कि इस साइट पर एक खोज ने कोई परिणाम नहीं लाया। इस प्रश्न से पूछा गया है और अतीत में कई बार जवाब दिया गया है। – dreamlax
शायद मैंने यह पूछने से पहले सही तरीके से नहीं पूछा था ... - मैंने सीएफस्ट्रिंग के साथ निपटाए गए बहुत सारे प्रश्न देखे और इसे एनएसएसटींग को सौंप दिया, लेकिन यह नहीं देखा कि केविन बल्लार्ड ने तुरंत क्या जवाब दिया था। धन्यवाद! – MeisterPlans
संभावित डुप्लिकेट [एनएसएसटींग तुलना को समझना] (http://stackoverflow.com/questions/3703554/understanding-nsstring-comparison) –