我正在编写一个应用程序,它接受用户输入(来自UITextView),然后将输入与预定义值进行比较。 来自文本字段的所有输入都必须是数字,因此当按下按钮时,我使用此代码将NSString转换为int值。
(年龄是文本视图)
NSString *ageString = age.text;
int ageInt = [ageString intValue];
然后我使用此代码将文本与预定义的数字列表进行比较
if (ageInt > 12) {
label1.textColor = [UIColor greenColor];}
else {
label1.textColor = [UIColor redColor];
}
当我运行应用程序时,一切正常并且我没有错误,但是,当我在“age”textView中输入一个大于预定义值的值(比方说13)时,它仍然将标签1变为红色。
因此,此问题的摘要是,在比较值时,它无法正确比较。我很好奇是否有人知道为什么会这样?也许我在使用错误的课程?
答案 0 :(得分:1)
NSLog
ageInt
:
NSLog(@"age.text: %s, ageInt: %d", age.text, ageInt);
之后:
int ageInt = [ageString intValue];
这应该表明问题,ageInt
并非真的> 12和为什么。
如果ageInt
是> 13然后,在调用之后,未调用颜色设置代码或重置颜色。
在Xcode中添加一些断点并确保调用正确的颜色设置器 - 以及此时ageInt
的值。