मेरे पास कुछ कोड है जो दो एनएसआईएंडएक्सपैथ की तुलना करने और उनकी समानता या इसकी कमी (-इसक्वाल का उपयोग करके) के आधार पर अलग-अलग कोड निष्पादित करने पर निर्भर करता है। अधिकांश समय यह ठीक से काम करता है, लेकिन कभी-कभी ऐसा नहीं होता है। मैंने कोड निष्पादन के दौरान दो इंडेक्सपाथ का परीक्षण करने के लिए डीबगर कंसोल का उपयोग किया है, और वे मेरे समान दिखते हैं।isEqual हमेशा NSIndexPath के लिए काम नहीं करता है? मैं इसके स्थान पर क्या उपयोग कर सकता हूं?
- (BOOL)selectedStreetIsSameAsLastSelectedStreet
{
return [self.indexPathOfSelectedStreet isEqual:self.previousObject.indexPathOfSelectedStreet];
}
यहाँ कोड के निष्पादन के दौरान उत्पादन है::
कोड यह
(gdb) po self.indexPathOfSelectedStreet
<NSIndexPath 0x60a0770> 2 indexes [26, 1]
(gdb) po self.previousObject.indexPathOfSelectedStreet
<NSIndexPath 0x55b4f70> 2 indexes [26, 1]
(gdb) p (BOOL)[self.indexPathOfSelectedStreet isEqual:self.previousObject.indexPathOfSelectedStreet]
$2 = 0 '\000'
मैं कुछ गलत कर रहा हूँ, या कोई और तरीका मैं मज़बूती की समानता का परीक्षण कर सकते है दो एनएसआईएंडएक्सपैथ?
बिल्कुल सही। शीघ्र जवाब देने के लिए ध्न्यवाद! – JoBu1324
मुझे लगता है कि यह एक बग भी हो सकता है। मुझे आईओएस 4.2 बी 3 में एक ही समस्या है। –
मेरा मानना है कि ऐसा इसलिए है क्योंकि '-इस एक्वाल:' सिर्फ दो इंडेक्स पथों की सूचक तुलना कर रहा है। –