我在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;my AppDelegate中的IIViewDeckController属性
@property (strong, nonatomic) IIViewDeckController *viewDeckController;我发现当我关闭并重新进入应用程序时,我有两个PushNotificationTabBarController对象,没有引用其中的一个,就像内存泄漏一样。然而,我不明白为什么这段代码会导致它,因为对我来说,它似乎是好的。我使用的是ARC。
发布于 2014-05-26 20:00:05
在为self.viewDeckController.centerController对象设置pushNotificationTabBarController检查之前。如果它存在,释放并分配给nil,并分配新的对象'pushNotificationTabBarController‘
id controller = self.viewDeckController.centerController;
if (controller) {
[controller release];
controller = nil;
}
self.viewDeckController.centerController = pushNotificationTabBarController;https://stackoverflow.com/questions/23869196
复制相似问题