我使用此代码比较两个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];
}
}
}
有什么问题?
答案 0 :(得分:47)
我的建议是将其比作
if([productObject.pid intValue] == [number intValue])
{
NSLog(@"BUY it!!!");
[purchasArray addObject:productObject];
}
欢呼声。
我会避免对象比较
答案 1 :(得分:28)
更改以下代码..
if ([productObject.pid isEqualToNumber number])
{
NSLog(@"BUY it!!!");
[purchasArray addObject:productObject];
}
希望,这会对你有帮助..
答案 2 :(得分:13)
尝试比较方法而不是'=='。
if([1stNum compare:secNum] == NSOrderedSame)
{
// do something
}
告诉我现在是否有帮助!
答案 3 :(得分:2)
使用这样的东西,这对你有帮助
NSNumber *n=[[NSNumber alloc]init];
if([n isEqualToNumber:somenumber])
{
}