在搜索 iTunes 商店时,我遇到了一个小问题。我试图在价格为 0.00 时将标签的文本更改为“免费”,而不是显示价格。问题是,我对这两个NSDecimalNumber
s 的比较失败了。这是我目前所在的位置。
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterCurrencyStyle];
[formatter setCurrencyCode:self.searchResult.currency];
NSString *price = [formatter stringFromNumber:self.searchResult.price];
NSDecimalNumber *free = [[NSDecimalNumber alloc] initWithFloat:0.00f];
NSLog(@"Price:%@",price);
NSLog(@"Free:%@",free);
NSLog(@"self.searchResult.price: %@", self.searchResult.price);
if (self.searchResult.price == free) {
NSString *freeText = [NSString stringWithFormat:@"FREE"];
self.priceLabel.text = freeText;
}
else {
self.priceLabel.text = price;
}
NSLog(@"priceLabel:%@", self.priceLabel.text);
真正奇怪的是,控制台甚至说两者free
都是del.searchResult.price
相同的:
2012-11-24 20:01:16.178 StoreSearch[1987:c07] Price:$0.00
2012-11-24 20:01:16.178 StoreSearch[1987:c07] Free:0
2012-11-24 20:01:16.178 StoreSearch[1987:c07] self.searchResult.price: 0
2012-11-24 20:01:16.179 StoreSearch[1987:c07] priceLabel:$0.00
坦率地说,我对此有点困惑。任何帮助,将不胜感激。如果您能解释为什么会发生这种情况,以便我学会不再这样做,那么我将更加感激!
问候,
迈克