objective-c - 为什么viewController的初始化器没有在它的接口(interface)文件中声明?

标签 objective-c cocoa

在 Xcode 5 中,当我创建一个新的 XIB 时,会生成以下一组文件

mainViewController.h
mainViewController.m
mainViewController.xib

mainViewController.m 定义了一个初始化方法:

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil

但是,这个方法没有在mainViewController.h中声明

AppDelegate.m 调用此初始值设定项。但 AppDelegate.h 只导入 mainViewController.h 而不是 mainViewController.m

如果这个方法没有在接口(interface)文件中公开声明,AppDelegate.m如何调用- (id)initWithNibName而不发出警告?

最佳答案

因为 initWithNibName 是由 UIViewController 公开声明的,您的 mainViewController 类继承自它。

关于objective-c - 为什么viewController的初始化器没有在它的接口(interface)文件中声明?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25432837/

相关文章:

ios - XCode TableViewController 在 Objective-C 中详细介绍

objective-c - 当初始值设定项不是编译时常量时,在 Swift 中使用 C 宏

ios - 允许 UITableViewCell 上的手势落入底层 View

objective-c - 如何从 NSViewController 中显示 View ?

objective-c - 如何检测何时在 NSTableView 中选择了一行或多行?

cocoa - xcode 4 中 NSWindow 的内容边框

macos - NS窗口。什么是窗口服务器和窗口设备?

cocoa - Safari下的NPAPI自渲染插件(32位与64位)

Cocoa 限制导致 CPU 使用率高

cocoa - NSView 高级概述?