gpt4 book ai didi

iOS:为什么我要先在 viewDidUnload 中解除分配,然后在 dealloc 方法中解除分配?

转载 作者:行者123 更新时间:2023-12-01 18:33:05 25 4
gpt4 key购买 nike

我在 Apple 文档页面上找到了一个示例,其中他们按如下方式释放内存:

- (void)viewDidUnload
{
self.mapAnnotations = nil;
[super viewDidUnload];

// Relinquish ownership of anything that can be recreated in viewDidLoad or on demand.
// For example: self.myOutlet = nil;
}

- (void)dealloc
{
[mapAnnotations release];
[super dealloc];
}

我想知道为什么
  • 他们首先在 viewDidUnload 中将 mapAnnotation 设置为 nil,然后在 dealloc 方法和
  • 中释放
  • 为什么他们提到使用带有和不带有self的mapAnnotation。

  • 顺便说一下,这是可下载的示例: MapCallouts Example

    最佳答案

    您应该问的问题是:viewDidUnload 是什么时候?叫?

    简而言之,它在您不想释放整个 Controller 的低内存情况下调用,即当您不想 dealloc被称为。

    你可以想到viewDidUnloadviewDidLoad相反的 loadViewdeallocinit 的反义词. (在实践中,它当然会比这更复杂一些。)

    关于iOS:为什么我要先在 viewDidUnload 中解除分配,然后在 dealloc 方法中解除分配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5981375/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com