spe*_*dly 5 iphone memory-leaks mkmapview ios automatic-ref-counting
我一直在使用工具来查找未正确发布的分配.我有MKMapViewDelegate,它在实例化后通过实例方法添加地图.我可以在调用树中看到,在释放ViewDelegate之后,此方法保留了大约300KB的内存.我评论了代码的内容,它仍然只用这一行维护内存:
self.map = [[MKMapView alloc] initWithFrame:CGRectMake(10, 210, 300, 125)];
我查看对象列表并且MKMapView本身不存在,但随着我不断创建新的ViewDelegates,该内存不断增加.以下是地图的定义方式:
@property (strong, nonatomic)        MKMapView *map;
地图的委托设置为nil,以及ViewDelegate的dealloc上的引用
self.map.delegate = nil;
self.map = nil;
一旦你将 delegate 设置为 nil,就不再有任何指针,iOS 会在需要的时候释放它。iOS 在设置为 nil 后可能不会立即释放内存。
请记住,您通过将指针设置为 nil 来删除该指针,但该对象仍然保留在堆上,基本上什么也不做,直到那里分配了其他东西。
(我假设您还使用从其超级视图中删除了 MKMapView [self.map removeFromSuperView])。
| 归档时间: | 
 | 
| 查看次数: | 1812 次 | 
| 最近记录: |