我使用以下代码增加模型字段的数量:
- (IBAction) counterButton: (id) sender {
[model.amount++ stringValue];
}
在我升级Xcode之前它工作正常。从那时起,我一直收到以下错误:
"Arithmetic on pointer to Interface 'NSNumber'. which is not a constant size in non-fragile ABI"
当代码工作时,每次触摸UIButton时,它会将值递增1。
任何帮助将不胜感激。 感谢
答案 0 :(得分:10)
你不能在一个NSNumber
上执行++,它不是一个原始类型的对象。
它也是一种不可改变的类型。
如果你想增加金额的价值,你可以试试这个:
- (IBAction) counterButton: (id) sender {
NSInteger amount =[model.amount integerValue];
amount++;
model.amount = [NSNumber numberWithInteger:amount];
}
答案 1 :(得分:2)
除非model.amount
曾经是NSInteger
,否则我看不出它会如何发挥作用。 ++
运算符不适用于NSNumber
。或者至少,它不会增加存储在其中的值 - 而是将指针增加到对象,这不是你想要的。
相反,你需要增加“长手”的值。