【问题标题】:How to dealloc CGPoint, CGRect variables?如何释放 CGPoint、CGRect 变量?
【发布时间】:2015-07-07 07:03:49
【问题描述】:

我正在使用 Objective-C。我使用自动引用计数。我的代码中有很多 CGPointCGRect 变量。我得到内存错误。使用后如何解除分配。

【问题讨论】:

  • 您有CGPointCGPoint* 变量吗? CGRectCGRect* 的类似问题
  • 请附上MCVE。这个问题没有人是无法回答的。
  • CGPointCGRect 都是结构体。释放不是一回事。

标签: objective-c memory core-graphics automatic-ref-counting dealloc


【解决方案1】:

CGPoint, CGRect 默认情况下是堆栈分配的结构,它们在包含变量的范围开始时自动分配和释放,分别在结束时自动分配和释放。无需解除分配。

此类变量泄漏的唯一方法是,如果将变量分别声明为CGPoint*CGRect*,并手动为它们分配内存(使用malloccalloc)。或者,如果您将它们存储在无限期保留的 NSValue 对象中。

关键不是ARC 的内存使用问题,而是你的代码。

【讨论】:

    【解决方案2】:

    CGPoint 和 CGRect 变量位于堆栈中。他们不需要被释放。 当程序从创建它们的函数中退出时,它们将被释放。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-17
      • 1970-01-01
      • 2014-07-29
      • 2016-03-15
      • 1970-01-01
      • 1970-01-01
      • 2011-12-18
      • 2021-01-07
      相关资源
      最近更新 更多