二进制表达式的操作数无效(Int和NSNumber *)

时间:2014-06-17 03:14:06

标签: objective-c

我从CodeSchool学习目标C,并且学习OOP的一部分,我不明白为什么它不会起作用,但似乎很容易修复。

守则:

- (void) decreaseBatteryLife:(NSNumber *)decreaseBy
{
    self.batteryLife = @([self.batteryLife intValue] - decreaseBy);
}

在reduceBy:

之前指向减号的错误
^invalid operands to binary expression ('int' and 'NSNumber *')

1 个答案:

答案 0 :(得分:2)

" decreaseBy"是一个NSNumber 对象,而另一个值是" int"。存在差异(第一个是Objective C对象,另一个是原始C类型)。

你需要得到原始的" intValue"你的" decreaseBy"号。

这样的事情:

self.batteryLife = @([self.batteryLife intValue] - [decreaseBy intValue]);