我在 Apple 的网站上搜索过这个,似乎只能找到使用 Storyboards 或 Navigation Controllers 的文档,我都没有使用它们。这是一个关于内存管理的非常简单的问题。
我创建了一个完全空白的应用程序。在我的 AppDelegate 的 didFinishLaunchingWithOptions 函数中,我正在创建一个我已经构建的视图控制器的实例。我的设计(这本身可能是一个问题)是在视图控制器和视图之间建立 1:1 的关系。
所以我的应用程序的主菜单,它是一切的启动板,位于 MenuViewController.h/m 中。
在.h中:
MenuViewController *m;
以 .m 为单位:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
// Override point for customization after application launch.
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
m = (MenuViewController *)[[MenuViewController alloc] init];
m.window = self.window;
[m doStuff]; // handful of functions, not actually called this
//[m release]; // doesn't make sense to me
return YES;
}
这就是我感到困惑的地方。我希望它基本上存在于整个应用程序生命周期中。但我也觉得你应该(在当前函数的范围内)释放你分配的任何东西。如果除此之外还需要它,则应首先将其保留在其他地方。这不是真的吗?
我的基本问题是......我应该在哪里发布这个视图控制器?还有什么我说的似乎不合时宜的吗?