我目前在连接到 UITextField
的自定义 UITableViewCell
中使用 UIStepper
让人们选择他们想要添加的项目数量他们的购物车。
为了检查对象是否有货,我有两个数字:LocalStock 和 TotalStock。
我想做以下事情:
如果对象数量落入本地库存,我希望显示数字的文本字段变为绿色。
如果对象数量落入供应商库存(因此要么没有本地库存,要么步进器值高于本地库存,因此我们需要从供应商库存中获取)打开 UITextField
蓝色。
如果供应商库存和本地库存都不够,我希望文本字段变为黄色。
我得到了以下代码:
- (IBAction)stepperValueChanged:(id)sender
NSLog(@"localstock: %@",localstock);
NSLog(@"TotalStock: %@",totalstock);
NSDecimalNumber *value = [NSDecimalNumber decimalNumberWithString: self.textField.text];
if (value <= localstock)
{
self.aantalTextField.backgroundColor = [UIColor greenColor];
NSLog(@"Value %@ <= Localstock %@ >GREEN< Totalstock: %@",value,localstock, totalstock);
}
else if (value <= totalstock)
{
self.aantalTextField.backgroundColor = [UIColor blueColor];
NSLog(@"Value %@ <= totalstock %@ >BLUE< Localstock: %@",value,totalstock,localstock);
}
else
{
self.aantalTextField.backgroundColor = [UIColor yellowColor];
NSLog(@"Value: %@ LocalStock: %@ TotalStock %@ >YELLOW<",value,localstock,totalstock);}}
当我运行它时它没有多大意义......有时它会捕获绿色语句,有时会捕获蓝色语句,有时相同的值会返回黄色。
有人愿意看一下这个并告诉我(逻辑)错误在哪里吗?
提前致谢!
最佳答案
您是在比较对象,而不是它们的值。只要它们都是 NSDecimalNumber 类型...您需要进行类似的比较。
[value integerValue ] <= [localstock integerValue]
关于objective-c - 使用 Objective-C 中的 If 语句根据数值设置 UITextfield 的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14215251/