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?
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
Modifiez le code suivant.
if ([productObject.pid isEqualToNumber number])
{
NSLog(@"BUY it!!!");
[purchasArray addObject:productObject];
}
J'espère que ceci vous aidera..
Essayez la méthode comparer au lieu de '=='.
if([1stNum compare:secNum] == NSOrderedSame)
{
// do something
}
Dites-moi si ça aide maintenant!
Utilisez comme ça, je pense que cela vous sera utile
NSNumber *n=[[NSNumber alloc]init];
if([n isEqualToNumber:somenumber])
{
}