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变量。他们不需要被释放。 当程序从创建它们的函数出去时,它们将被释放。