0

我正在使用Objective-C。我使用自動ref-counting。我的代碼中有很多CGPointCGRect變量。我收到內存錯誤。如何在使用後解除分配。如何釋放CGPoint,CGRect變量?

+0

你有'CGPoint'或'CGPoint *'變量嗎? 'CGRect'和'CGRect *'類似的問題' – Cristik

+0

請包括[MCVE](/ help/mcve)。沒有人就不能回答這個問題。 – Sumurai8

+0

'CGPoint'和'CGRect'都是結構體。釋放不是一回事。 – skyline75489

回答

1

CGPoint,CGRect默認爲堆棧分配結構,當包含變量的作用域分別開始時分別自動分配和釋放。沒有必要釋放這些。

這些種變量可以泄漏的唯一方法是,如果你分別變量聲明爲CGPoint*CGRect*和你(使用malloccalloc)手動分配爲他們存儲器。或者,如果您將它們存儲在無限期保留的對象NSValue中。

問題是,這不是ARC的內存使用錯誤,而是你的代碼。

1

位於堆棧中的CGPoint和CGRect變量。他們不需要被釋放。 當程序從創建它們的函數出去時,它們將被釋放。