【问题标题】:Invalid operands to binary expression ('int' and 'NSString')二进制表达式的无效操作数('int' 和 'NSString')
【发布时间】:2014-01-20 17:12:16
【问题描述】:

我正在尝试制作年龄计数器,但第一行有错误:

“二进制表达式的无效操作数('int'和'NSString')”

-(IBAction)OK:(id)sender; {   
    Age = 2013 - textfield.text ;   
    label.text = [NSString stringWithFormat:@"%i" , Age];

【问题讨论】:

  • 顺便说一句,标准编码约定是变量和方法名称以小写字符开头——使用以大写开头的名称作为类名。如果您遵循此约定,您的代码将更容易被其他人理解。

标签: ios objective-c nsstring int


【解决方案1】:

你需要取文本的整数值,然后你可以用它做减法。但是如果字符串不能转换为 int(例如“this”不是 int...),则 NSString 的 intValue 可能会返回 0。

-(IBAction)OK:(id)sender; {   
    Age = 2013 - [textfield.text intValue] ;   
    label.text = [NSString stringWithFormat:@"%i" , Age];
}

【讨论】:

    【解决方案2】:

    你在这里犯了一个小错误。您正在从整数中减去字符串值:

    Age = 2013 - textfield.text ; 
    

    用这个代替上面的行:

    int Age = 2013 - [textfield.text intValue] ; 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-17
      • 2022-01-11
      • 1970-01-01
      • 2012-04-16
      • 1970-01-01
      相关资源
      最近更新 更多