मैं एक साधारण एनएसएससेट चाहता हूं जो कुछ NSNumbers के साथ लोड हो और फिर पता लगाएं कि उन नंबरों को पहले से सेट में जोड़ा गया है या नहीं। जब मैं यह कर:NSNumbers के एनएसएससेट - सदस्य विधि हमेशा शून्य
NSMutableSet *set = [[NSMutableSet alloc] init];
NSNumber *num1 = [NSNumber numberWithInt:5];
NSNumber *num2 = [NSNumber numberWithInt:5];
[set addObject:num1];
if([set member:num2]){
// something...
}
समस्या यह है कि सदस्य हमेशा शून्य रिटर्न (अगर गलत है), भले ही उन संख्याओं को एक ही कर रहे हैं। Isqual विधि सच हो जाता है। तो
if([num1 isEqual:num2]){
// correct
}
काम करता है ...
डॉक्स में मैंने पढ़ा सदस्य विधि का उपयोग करता है isEqual इसलिए मैं नहीं जानता कि क्या समस्या है ... किसी भी सलाह के लिए धन्यवाद।
यदि आपका कोड सही ढंग से चिपकाया गया है - आपने अपने सेट – Maggie
पर ऑब्जेक्ट num2 नहीं जोड़ा है, तो आप निश्चित हैं .. आपका कोड मेरे लिए बिल्कुल ठीक काम कर रहा है! – Devarshi
@ मैगी हाँ मुझे यकीन है कि बिंदु यह है कि मैं यह जांचना चाहता हूं कि नंबर 5 पहले से ही सेट में है या नहीं, लेकिन मुझे nsnumber का उपयोग करना है क्योंकि वे ऑब्जेक्ट्स हैं, इसलिए मैं जांचना चाहता हूं कि 5 के मान के साथ nsnumber ऑब्जेक्ट है या नहीं पहले से ही सेट में (मूल्य 5 के साथ num1 है, इसलिए इसे सच करना चाहिए) – haluzak