[英]EXEC_BAD_ACCESS(Code=1)
一切正常,直到我添加了一个新的NSNUmber变量。
我的.h文件看起来具有以下内容-
NSNumber *foodPriceTotal;
@property (assign, readwrite) NSNumber *foodPriceTotal;
在我的.m文件中-
@synthesize foodPriceTotal;
在我的Initwithnibname方法中,我这样做-
foodPriceTotal = [[NSNumber alloc] init];
在我的cellForRowAtIndexPath函数中,我这样做
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
CGFloat deliveryCharge = [prefs floatForKey:@"deliveryCharge"];
foodPriceTotal = [NSNumber numberWithFloat:([foodPriceTotal floatValue] + deliveryCharge)];
上下滚动时出现错误EXEC_BAD_ACCESS(Code = 1)-
错误线是-
foodPriceTotal = [NSNumber numberWithFloat:([foodPriceTotal floatValue] + deliveryCharge)];
有什么想法吗?
正如Till所指出的,您的所有权限定符( assign
)不是您想要的。 在使用NSNumber
99%中,您想copy
。
然后,使用accessor方法:
self.foodPriceTotal = ...
完全没有理由将NSNumber *foodPriceTotal
声明放入您的.h文件,只需删除该行即可。
关于您的init
方法,您可能需要重新考虑您的逻辑。 什么是没有值的数字? 可能nil
一样好,而且更清晰。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.