我试图找出以下方法是如何导致内存泄漏的。 分配了一个 < code> UIPopover 主计长 < / code >, 但是, 如果我包括一个 < code> autorelease code > 或 < code> release code > 呼叫, 应用程序崩溃, 消息 < code > - [UIPopover 主计长事务 仍然可见, 到达时仍然可以看到 。 < / code >
-(void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control {
[mapView deselectAnnotation:view.annotation animated:TRUE];
if ( UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad ) {
UIViewController *con = [[UIViewController alloc] init];
UIPopoverController *poc = [[UIPopoverController alloc] initWithContentViewController:con];
[con release];
poc.popoverContentSize = CGSizeMake( 320, 320 );
[poc presentPopoverFromRect:view.bounds inView:view permittedArrowDirections:UIPopoverArrowDirectionAny animated:TRUE];
}
else {
; // TODO (miked): display stuff another way
}
}
这似乎违背了基本的记忆管理做法。
p. s. 我还没有启用 ARC 。