2012-05-03 25 views
23

मैंने दो एनएसएनंबर ऑब्जेक्ट्स की तुलना करने के लिए इस कोड का उपयोग किया, लेकिन यह कभी भी स्थिति को पारित नहीं किया।दो NSNumber ऑब्जेक्ट्स की तुलना

listItems = [appDelegate.productStatus componentsSeparatedByString:@","]; 


for (int i=0;i<[appDelegate.productArray count]; i++) 
{ 

    for (int j=0; j<[listItems count]; j++) 
    { 
     number=[NSNumber numberWithInt:[[listItems objectAtIndex:j] intValue]]; 
     NSLog(@"number %@",number); 
     productObject=[appDelegate.productArray objectAtIndex:i];   
     NSLog(@"%@,%@",productObject.pid,number); 
     if (productObject.pid == number) 
     { 
      NSLog(@"BUY it!!!"); 
      [purchasArray addObject:productObject]; 
     } 

    } 
} 

क्या गलत है?

+1

के साथ प्रयास करें == के बराबर तत्काल प्रयास करें। – vishiphone

उत्तर

44

मेरे sugestion तुलना करने के लिए है यह

if([productObject.pid intValue] == [number intValue]) 
{ 
NSLog(@"BUY it!!!"); 
     [purchasArray addObject:productObject]; 
} 

चीयर्स।

मैं ऑब्जेक्ट तुलना

+1

सही, लेकिन [संख्या intValue] आवश्यक नहीं है, क्योंकि संख्या ऊपर की कुछ पंक्तियों से बनाई गई है। तो यह हो सकता है ([productObject.pid intValue] == [[listItems ऑब्जेक्टएट इंडेक्स: जे] intValue]) –

+0

धन्यवाद। इसका काम – USK

+1

साद: – Nit

13

0 =30 'की बजाय विधि की तुलना करें।

if([1stNum compare:secNum] == NSOrderedSame) 
    { 
     // do something 
    } 

मुझे बताएं कि क्या यह अब मदद करता है!

+0

यह त्रुटि आती है: - [एनएससीएफस्ट्रिंग isEqualToNumber:]: अज्ञात चयनकर्ता उदाहरण 0x753e5e0 ' – USK

+0

पर भेजा गया है ठीक है अब मेरे संपादित कोड की जांच करें और मुझे बताएं कि क्या होता है! – Deviator

27

बदलें कोड निम्नलिखित ..

if ([productObject.pid isEqualToNumber number]) 
    { 
     NSLog(@"BUY it!!!"); 
     [purchasArray addObject:productObject]; 
    } 

आशा, यह आप में मदद मिलेगी ..

+1

यह सबसे अच्छा जवाब है। – GoldenJoe

1

उपयोग इस मैं बात की तरह इस वसीयत उपयोगी आप के लिए

NSNumber *n=[[NSNumber alloc]init]; 
if([n isEqualToNumber:somenumber]) 
{ 
} 
+1

यह इस युग को दिखाता है - [एनएससीएफस्ट्रिंग isEqualToNumber:]: अज्ञात चयनकर्ता उदाहरण 0x753e5e0 ' – USK

+0

ठीक से भेजा गया है तो क्या आप सुनिश्चित हैं कि आपकी दोनों तरफ संख्या है? – vishiphone

+0

क्योंकि मुझे नहीं पता कि आपका उत्पाद क्या है। Adject.pid. दोनों की तुलना करने के लिए संख्या होना चाहिए, इसलिए जांचें। – vishiphone

संबंधित मुद्दे