簡體   English   中英

為什么要釋放該對象?

[英]Why is this object being released?

我得到一個EXC_BAD_ACCESS釋放時newImage在下面的代碼片段的最后一行:

UIGraphicsBeginImageContext(newSize);
[image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

[self setImageToSave:newImage];
[newImage release];

我假設newImage與上一行的調用一起釋放。 如果是這樣,為什么要在setImageToSave方法中發布它?

看起來像這行:

UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();

正在創建一個自動釋放的對象。 在該行與該行之間:

[newImage release];

..它正在自動發布。 您試圖釋放一個自動釋放的(並且已經釋放的)對象,這就是為什么您會收到該錯誤的原因。 刪除發行版。 至於這行:

[self setImageToSave:newImage];

如果需要為任何發行版保存newImage,則應保留在此處或setImageToSave方法中。 請記住,由於您是手動保留它的,因此您需要在同一方法內或其他位置將它與發行版進行匹配。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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