我在applicationDidBecomeActive
回调中执行此代码。
- (void)applicationDidBecomeActive:(UIApplication *)application{
[self showMainWindow];
}
- (void) showMainWindow{
PushNotificationTabBarController *pushNotificationTabBarController = [[PushNotificationTabBarController alloc] initWithNibName:@"PushNotificationTabBarController" bundle:nil];
self.viewDeckController.centerController =
pushNotificationTabBarController; // registered for Notification via addObserver...
}
setter
的定义如下:
@property (nonatomic, strong) IBOutlet UIViewController* centerController;
我的IIViewDeckController
中的 AppDelegate
属性:
@property (strong, nonatomic) IIViewDeckController *viewDeckController;
当我关闭并重新进入应用程序时,我发现我有2个PushNotificationTabBarController
个对象,没有引用其中一个,就像内存泄漏一样。但是,我不明白为什么这个代码导致它,因为对我来说似乎没问题。我使用ARC
。
答案 0 :(得分:-1)
在设置pushNotificationTabBarController之前检查self.viewDeckController.centerController对象。如果它存在,则释放并分配给nil并分配' pushNotificationTabBarController'
的新对象 id controller = self.viewDeckController.centerController;
if (controller) {
[controller release];
controller = nil;
}
self.viewDeckController.centerController = pushNotificationTabBarController;