0
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {

        fetched = NO;
        self.title = @"Nearby";
        // Custom initialization

        liked = NO;

        categories = [[NSArray alloc] init];
        fundings = [[NSArray alloc] init];
        stages = [[NSArray alloc] init];
    }


    return self;
}

我使用上面的代码。通过在 initWithNibName 函数中初始化我的所有变量,我有什么问题吗?那是正确的地方吗?

4

2 回答 2

0

你可以在init方法中做到这一点,这很好。您也可以在方法中执行(或部分执行)viewDidLoad。区别(通常)viewDidLoad是在您的视图实际准备好显示时调用,因此您需要进行所有设置。init另一方面,可以提前调用。没有一个硬性和快速的答案,这取决于您正在设置的项目是什么,以及当视图未显示时是否可以卸载它们。对于新版本的 iOS,无论如何都会发生变化,因为视图通常不会被卸载。您确实需要了解视图和控制器的生命周期,并决定何时创建和销毁您的属性。

于 2013-07-24T22:31:27.950 回答
0

您可能不会遇到问题,但您也可以将 ViewController 与 pure 一起使用,init在这种情况下,不会加载 NIB,也不会调用您的初始化。另一个为此进行初始化的地方viewDidLoad是仅在初始化之后调用的地方。

于 2013-07-24T22:33:54.310 回答