Ios 比较两个NSNumber对象
我使用这段代码来比较两个NSNumber对象,但它从未通过if条件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
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])这是最好的答案。