簡體   English   中英

EXEC_BAD_ACCESS(代碼= 1)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM