增加核心数据模型字段的值

时间:2011-11-11 10:13:17

标签: iphone objective-c ios core-data

我使用以下代码增加模型字段的数量:

- (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。

任何帮助将不胜感激。 感谢

2 个答案:

答案 0 :(得分:10)

你不能在一个NSNumber上执行++,它不是一个原始类型的对象。 它也是一种不可改变的类型。

如果你想增加金额的价值,你可以试试这个:

- (IBAction) counterButton: (id) sender {
    NSInteger amount =[model.amount integerValue];
    amount++;
    model.amount = [NSNumber numberWithInteger:amount];

}

答案 1 :(得分:2)

除非model.amount曾经是NSInteger,否则我看不出它会如何发挥作用。 ++运算符不适用于NSNumber。或者至少,它不会增加存储在其中的值 - 而是将指针增加到对象,这不是你想要的。

相反,你需要增加“长手”的值。