我使用NAvigation控制器创建一个非常简单的项目,根控制器是viewController,只有一个按钮指向包含mapView的新mapViewControler。
NavigatioController - > viewController - button --push - > mapViewController with mapView。
这是我的mapViewController.h代码:
#import <UIKit/UIKit.h>
#import <MapKit/MapKit.h>
@interface mapViewController : UIViewController
@property (weak, nonatomic) IBOutlet MKMapView *mapView;
@end
这是我的mapViewController.m代码:
#import "mapViewController.h"
@implementation mapViewController
- (void)viewDidLoad
{
[super viewDidLoad];
}
-(void) viewWillDisappear:(BOOL)animated {
//trigered when Back button pressed
if ([self.navigationController.viewControllers indexOfObject:self]==NSNotFound) {
[self setMapView:nil];
self.mapView.delegate = nil;
}
[super viewWillDisappear:animated];
}
@end
所以,当我点击按钮(segue - push)时,mapViewController显示和Live Bytes增加40MB - 我想因为地图图像,但是当我点击后退按钮(navigationControl)时,内存仅减少39 MB。所以1MB留在某处。如果我重复这100次,这是100MB。 Leaks工具显示没有泄漏。
有人可以解释为什么每次点击Back以及如何摆脱它时这个1MB都会停留吗?