web-dev-qa-db-fra.com

Comparaison de deux objets NSNumber

J'ai utilisé ce code pour comparer deux objets NSNumber, mais il n'a jamais réussi la condition if.

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];
        }

    }
}

Qu'est-ce qui ne va pas?

27
USK

Ma suggestion est de le comparer

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

à votre santé.

J'éviterais la comparaison d'objets

47
Saad

Modifiez le code suivant.

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

J'espère que ceci vous aidera..

28
Nit

Essayez la méthode comparer au lieu de '=='.

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

Dites-moi si ça aide maintenant!

13
Deviator

Utilisez comme ça, je pense que cela vous sera utile

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