比较两个NSNumber对象

USK*_*USK 27 comparison nsnumber ios

我使用此代码比较两个NSNumber对象,但它从未传递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];
        }

    }
}
Run Code Online (Sandbox Code Playgroud)

怎么了?

Saa*_*aad 48

我的消化是比较它

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

干杯.

我会避免对象比较


Nit*_*Nit 28

更改以下代码..

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

希望对你有帮助..

  • 这是最好的答案。 (2认同)

Dev*_*tor 13

尝试比较方法而不是'=='.

if([1stNum compare:secNum] == NSOrderedSame) 
  {
      // do something
  }
Run Code Online (Sandbox Code Playgroud)

告诉我它现在有用吗!