我是iOS编程新手。我看到我的视图控制器中定义了函数,例如
- (void) viewDidLoad
viewDidLoad
如何用连字符表示的实例方法?我不认为我曾经实例化过这门课。
答案 0 :(得分:3)
在Xcode中创建* .xib文件(视图)并在身份检查器中设置其类(控制器)时,通过
加载* .xib文件时会实例化该类的实例[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil]
* .xib文件完全加载后会自动调用viewDidLoad
。
您只需在Xcode中创建一个新的Single View iOS项目即可看到这一点。在AppDelegate.m中,您会在-(BOOL) application: didFinishLaunchingWithOptions:
方法中看到与上面类似的行。在ViewController.xib文件中,如果单击"文件的所有者"并显示身份检查器,您将看到类ViewController
是一个"链接"使用* .xib。
答案 1 :(得分:1)
viewDidLoad是类UIViewController的一个方法,它在viewcontrollers视图加载时被调用... here是对类文档的引用
答案 2 :(得分:1)
Objective-C区分实例方法和类方法。
实例方法是可以发送到类实例的消息(即对象变量),类方法是只能发送的消息被送到班级本身:
@interface MyClass { }
+ (void)someClassMethod();
- (void)someInstanceMethod()
@end
这些方法将按如下方式调用:
[MyClass someClassMethod];
id myObject = [[myClass alloc] init];
[myObject someInstanceMethod];
答案 3 :(得分:1)
- (void)viewDidLoad
在UIViewController中声明,因此您创建的UIViewController的任何子类将在视图加载时自动调用此方法。 Apple只是将其提供给默认模板中的用户,作为开发人员在视图上进行任何类型的最后一分钟初始化的地方。所以你可能认为你没有实例化这个类,但是当你创建一个UIViewController时就做了。
如果你查看UIViewController的头文件,你会发现这个......
- (无效)viewDidLoad中; //在加载视图后调用。对于在代码中创建的视图控制器,这是在-loadView之后。对于视图 控制器从笔尖取消归档,这是在设置视图之后。
答案 4 :(得分:1)
加载视图时(视图出现时)调用(void)viewDidLoad,所以永远不要单独调用任何calss的viewDidLoad,否则你必须维护堆栈,因为MVC有用于调用这些方法的堆栈。 viewDidLoad将在第一次出现视图时被调用,如果视图转到后台并且到达前景,则不会调用它。