This is from some sample code from a book
// On launch, create a basic window
- (void)applicationDidFinishLaunching:(UIApplication *)application {
UIWindow *window = [[UIWindow alloc] initWithFr开发者_JAVA技巧ame:[[UIScreen mainScreen] bounds]];
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:[[HelloController alloc] init]];
[window addSubview:nav.view];
[window makeKeyAndVisible];
}
But a release
is never called for window
nor for nav
.
- Release should be called since
alloc
was called, right? - If #1 is right, then I would need to store a reference to each of these in an instance variable in order to release them in the
dealloc
?
Perhaps I'm wrong all around...
Yes, normally.
However; UIWindow is normally not released, nor is the root navigation controller, as, well, what's the point. They last for the duration of your application.
Also, get a newer book; we use Interface Builder for this stuff now.
精彩评论