快速内存管理–自动释放池

  • 快速地, UIApplication处理应用程序的自动释放池。 作为开发人员,我们不必使用自动发行版。
  • 自动释放池块提供了一种机制,您可以通过该机制释放对象的所有权,
  • 在iOS应用中,主要功能在自动释放池中运行。 该池的清空操作将在每个主运行循环结束时进行。
  • 在开发中需要延迟释放,有时我们希望变量的生存期超过其范围(例如被调用函数),因此我们可以在以后继续使用它。
  • 在Swift项目中,我们有@UIApplicationMain。 既无需添加主文件,也无需添加诸如objective-c之类的主方法。 即使我们创建自己的main.swift作为应用程序的入口点,也无需添加与自动释放池相关的任何内容。

自动发行的工作方式:

问题:

现在我们需要知道自动释放对象。 假设您在方法内部拥有一个对象并返回该对象。 接收方我们将得到一个空对象。 你知道为什么吗?.🤔

众所周知,一个临时对象将在其作用域结束后得到释放。

在这种情况下,我们需要延迟发布对象。 在这种情况下,我们使用自动释放。

在内存管理中,分配相反的释放,在最终对象范围内调用。 根据内存规则,变量fullName将在其返回之前被释放,因此方法将返回一个无效的对象。

解决方案:

使用自动释放可以告诉您要释放所有权,但是允许调用方方法在释放之前使用返回字符串。

因此,将在自动释放池中添加一个自动释放对象。 如果该池获得释放,则所有自动释放对象释放。

因此, 自动释放会延迟对象的释放。因此,在对象释放之前将对象所有权赋予相应的方法。