gpt4 book ai didi

iphone - MKMapView initWithFrame 不使用 ARC 释放内存

转载 作者:可可西里 更新时间:2023-11-01 04:54:06 25 4
gpt4 key购买 nike

我一直在使用工具来查找未正确发布的分配。我有 MKMapViewDelegate,它在实例化后通过实例方法添加 map 。我可以在调用树中看到,在释放 ViewDelegate 之后,此方法一直保留大约 300KB 的内存。我注释掉了代码的内容,它仍然只用这一行来维护内存:

self.map = [[MKMapView alloc] initWithFrame:CGRectMake(10, 210, 300, 125)];

我查看对象列表,发现 MKMapView 本身不存在,但随着我不断创建新的 ViewDelegates,内存不断增加。以下是 map 的定义方式:

@property (strong, nonatomic)        MKMapView *map;

map的delegate设置为nil,以及ViewDelegate的dealloc上的引用

self.map.delegate = nil;
self.map = nil;

最佳答案

一旦将委托(delegate)设置为 nil,就不再有任何指针,iOS 会在需要时释放它。 iOS 可能不会在设置为 nil 后立即释放内存。

请记住,您通过将指针设置为 nil 来移除 指针,但该对象仍然保留在堆上,基本上什么都不做,直到那里分配了其他东西。

(我假设您还使用 [self.map removeFromSuperView] 从其 super View 中删除了 MKMapView)。

关于iphone - MKMapView initWithFrame 不使用 ARC 释放内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12790817/

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