我何时使用Objective-C在iPhone编程中分配和初始化对象?

Ant*_*nko 1 iphone sdk xcode uilabel

有时当我为iPhone编程时,我想知道什么时候必须分配和初始化对象,什么时候不要.当您使用UI控件时,似乎您不必这样做.这是真的吗?为什么?

(假设它们已在视图控制器的.h中声明.)

例:

label1.text = @"Hello";
Run Code Online (Sandbox Code Playgroud)

VS

label1 = [[UILabel alloc] init];
label1.text = @"Hello";
Run Code Online (Sandbox Code Playgroud)

这是因为我正在使用Interface Builder吗?如果我在代码中编写我的GUI,我是否必须这样做?

Ana*_*tts 5

你的困惑是因为NIB文件 - 一个NIB文件基本上是一个冻结的对象图(即一个有孩子的对象,有其他孩子的对象等).当您加载该NIB文件时,运行时会您调用所有的alloc和inits ,以便它们已经创建.

如果要创建先前未在NIB文件中指定的对象,则需要alloc/init时.