के साथ एनएसएनंबर की तुलना करें मैंने आज दो बग का पीछा करते हुए कुछ समय बिताया, और दोनों ही एक ही समाधान का उपयोग करके फिक्सिंग समाप्त कर दिया।एनएसएनएनटेगर
अब मेरे पास समाधान है, मैं इसके पीछे कुछ स्पष्टता प्राप्त करने की उम्मीद कर रहा था।
मैं एक इंटीजर (एबीप्रॉपर्टी आईडी & ABMultiValueIdentifier) के साथ कोर डेटा (इंटीजर 16/एनएसएनंबर) से एक विशेषता की तुलना कर रहा हूं।
बग इस तुलना में था, और विचित्र रूप से पर्याप्त, केवल ऐप को मारने के बाद ही दिखाया गया था (पृष्ठभूमि ट्रे से), इसे फिर से खोल दिया, और उसी प्रक्रिया के माध्यम से तुलना की जिसमें तुलना शामिल थी। वैसे भी ...
यह वही है एक बार पुनः प्रारंभ करने काम करना बंद कर रहा है:
if (myNumber.aProperty == [NSNUmber numberWithInt:anInteger]) { /* do stuff here */ }
और इन दो समाधान है, जो अब तक पूरी तरह से काम कर रहे हैं कर रहे हैं:
if ([myNumber.aProperty integerValue] == anInteger) {/* do stuff here */ }
if ([myNumber.aProperty isEqualToNumber:[NSNumber numberWithInt:anInteger]]) { /* do stuff here */ }
मेरे लिए, वे सभी समान दिखते हैं। मैं हमेशा एनएसएनंबर को एक पूर्णांक वैल्यू में परिवर्तित कर रहा हूं, या एनएसएनंबर में पूर्णांक को परिवर्तित कर रहा हूं।
कोई विचार?
यह समझ में आता है।हालांकि, एक चीज जो अजीब थी, और मेरी पोस्ट में संक्षेप में उल्लेख किया गया था, यह है कि तुलना वास्तव में काम कर रही थी जब मैं पहली बार अपना ऐप चलाऊंगा। मेरे ऐप को मारने के बाद ही, इसे फिर से खोल दिया गया, और तुलना के माध्यम से ऐप चलाया कि मैंने अप्रत्याशित परिणाम देखना शुरू कर दिया। मेरे ऐप के बारे में कुछ भी जानने या किसी भी कोड को देखने के बिना, क्या आपके पास कोई अनुमान होगा कि यह क्यों हो रहा था? – djibouti33
@ djibouti33: कोई सुराग नहीं है ... (और यह कहकर मैं इसकी अप्रत्याशितता को भी इंगित कर रहा हूं :) – BoltClock