我从CodeSchool学习目标C,并且学习OOP的一部分,我不明白为什么它不会起作用,但似乎很容易修复。
守则:
- (void) decreaseBatteryLife:(NSNumber *)decreaseBy
{
self.batteryLife = @([self.batteryLife intValue] - decreaseBy);
}
在reduceBy:
之前指向减号的错误^invalid operands to binary expression ('int' and 'NSNumber *')
答案 0 :(得分:2)
" decreaseBy
"是一个NSNumber 对象,而另一个值是" int
"。存在差异(第一个是Objective C对象,另一个是原始C类型)。
你需要得到原始的" intValue
"你的" decreaseBy
"号。
这样的事情:
self.batteryLife = @([self.batteryLife intValue] - [decreaseBy intValue]);