目标 C,iOS:不在子视图上调用 alloc 或 init

Posted

技术标签:

【中文标题】目标 C,iOS:不在子视图上调用 alloc 或 init【英文标题】:objective C, iOS: not calling alloc or init on a subview 【发布时间】:2011-06-20 19:57:59 【问题描述】:

我目前正在运行以下代码,作为一个简单的 iPad 测试程序的一部分。我已将“viewController”声明为属性。在我见过的所有其他涉及子视图的示例中,我被要求分配和初始化 viewController,但在这里它工作正常。有什么想法吗?

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions     
    // Why does this work without allocating or initializing viewController?
    [self.window addSubview:viewController.view];
    [self.window makeKeyAndVisible];

    return YES;

【问题讨论】:

【参考方案1】:

这看起来像 Apple 随 ios 模板提供的典型样板代码。在这些项目中,viewController 在MainWindowNIB 中定义。此 NIB 在启动应用程序的过程中很早就加载。在NIB加载过程中分配viewController,然后调用initWithNibName:bundle:。然后,NIB 加载过程将初始化的对象连接到应用程序委托的视图控制器的IBOutlet

【讨论】:

谢谢!这确实是正在发生的事情。

以上是关于目标 C,iOS:不在子视图上调用 alloc 或 init的主要内容,如果未能解决你的问题,请参考以下文章

目标 C:[MyObject alloc] 现在在 iOS SDK 4.1 下崩溃

如何检查目标 C 屏幕上当前显示的子视图?

ios 将子视图添加到不在中心的 ScrollView

iOS:处理方向更改而不在视图控制器上启用横向模式

选择时 UITableViewCell 背景颜色中的目标 c 子视图

UITouch 不适用于 ios8