Ios 比较两个NSNumber对象

Ios 比较两个NSNumber对象,ios,comparison,nsnumber,Ios,Comparison,Nsnumber,我使用这段代码来比较两个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 n

我使用这段代码来比较两个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];
        }

    }
}
listItems=[appDelegate.productStatus组件由字符串分隔:@“,”;

对于(int i=0;i尝试比较方法,而不是“==”

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

现在告诉我它是否有用!

更改以下代码

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

希望,这将对你有所帮助。

像这样使用我的东西,这将对你有所帮助

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

我的建议是把它比作

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


我会避免对象比较

尝试使用isEqual instant of==。出现错误:-[NSCFString isEqualToNumber:]:无法识别的选择器发送到实例0x753e5e0'显示此错误-[NSCFString isEqualToNumber:]:无法识别的选择器发送到实例0x753e5e0',因为我不知道您的productObject.pid是什么。要比较两者,请检查该值。对,但[number intValue]不是必需的,因为数字是从上面的int几行中生成的。因此可能是([productObject.pid intValue]=[[listItems objectAtIndex:j]intValue])这是最好的答案。