比较int对象和数字的值不起作用?

时间:2012-01-20 18:48:45

标签: objective-c cocoa-touch cocoa

我正在编写一个应用程序,它接受用户输入(来自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变为红色。

因此,此问题的摘要是,在比较值时,它无法正确比较。我很好奇是否有人知道为什么会这样?也许我在使用错误的课程?

1 个答案:

答案 0 :(得分:1)

NSLog ageInt

NSLog(@"age.text: %s, ageInt: %d", age.text, ageInt);

之后:

int ageInt = [ageString intValue];

这应该表明问题,ageInt并非真的> 12和为什么。

如果ageInt是> 13然后,在调用之后,未调用颜色设置代码或重置颜色。

在Xcode中添加一些断点并确保调用正确的颜色设置器 - 以及此时ageInt的值。