"[CALayer release]:在UIViewController中发送给deallocated instance的消息"

Eri*_*der 2 iphone release objective-c calayer android-mapview

我在UIViewController中有一个MapView.当我尝试在viewDidUnload之后加载视图时,它会崩溃并显示以下消息:

- [CALayer release]:发送到解除分配的实例0x29aea0的消息

我想我在viewDidUnload中做了所有必要的事情:

- (void)viewDidUnload {

    [super viewDidUnload];

    locationManager.delegate = nil;
    [locationManager release];
    locationManager = nil;

    mapView.delegate = nil;
    [mapView release];
    mapView = nil;
}
Run Code Online (Sandbox Code Playgroud)

我的MapView是在xib文件中配置的UIView中.我的VC永远不会被释放.

我一直在谷歌上搜索一段时间,但我找不到答案.

编辑

 - (void)viewDidLoad {

    [super viewDidLoad];

    locationManager = [[CLLocationManager alloc] init];
    [locationManager setDelegate:self];
    [locationManager setDesiredAccuracy:kCLLocationAccuracyBest];
    [locationManager startUpdatingLocation];

    [label setFont:[UIFont fontWithName:@"Sansation" size:28]];
    [label setShadowOffset:CGSizeMake(0, 1)];
    [label setShadowColor:[UIColor grayColor]];
    self.navigationItem.titleView = labelView;
    [label release];
    [labelView release];

    UIBarButtonItem *checkInButton = [[UIBarButtonItem alloc] initWithTitle:@"Checka In" style:UIBarButtonItemStylePlain target:self action:@selector(checkIn)];
    [[self navigationItem] setRightBarButtonItem:checkInButton];
    [checkInButton release];

    UIBarButtonItem *clueListButton = [[UIBarButtonItem alloc] initWithTitle:@"Ledtrådar" style:UIBarButtonItemStylePlain target:self action:@selector(cluesDown)];
    [[self navigationItem] setLeftBarButtonItem:clueListButton];
    [clueListButton release];

    UINavigationBar *bar = [self.navigationController navigationBar]; 
    [bar setTintColor:[UIColor colorWithRed:0.06 green:0.58 blue:0.88 alpha:1]]; 
}
Run Code Online (Sandbox Code Playgroud)

"labelView"和"label"是IBOutlets.

Dar*_*ust 7

由于您既没有分配也没有保留,label并且labelView在您的viewDidLoad方法中,您可能不会在此处释放它们(您过度释放它们).