我有一个显示UILabel
字符数的UITextfield
。它可以工作,但是当x
小于零时,我无法更改标签的文本颜色。实际上,我不知道答案在哪里,因为我可以记录/显示正确的数据,但-1,-2..
处只有颜色不变。
- (void)updateLabelUsingContentsOfTextField:(id)sender {
NSString *numberPlaceholder = [NSString stringWithFormat:@"%@", ((UITextField *)sender).text];
int x = 43-[numberPlaceholder length];
if (x <= 0) {
self.charNumbers.textColor = [UIColor redColor];
NSLog(@"IF DEV LOG 1 - INTEGER IS %d", x);
}
self.charNumbers.text = [NSString stringWithFormat:@"%d",x];
NSLog(@"X INTEGER IS %d", x);
if (x <= 43) {
self.charNumbers.textColor = [UIColor blackColor];
NSLog(@"IF DEV LOG 2 - INTEGER IS %d", x);
}
}
最佳答案
[numberPlaceholder length]
返回一个无符号整数,因此不正确的比较可能是下溢的结果。尝试将[numberPlaceholder length]
强制转换为int,以便这些值具有相同的类型:
int x = 43 - (int)[numberPlaceholder length];