2012-07-26 74 views
0

我一直在线浏览一些iOS示例我遇到了应用程序初始化数组,然后在iOS应用程序启动时向其添加对象的应用程序。初始化工作,当我在实现文件中使用(void) viewDidLoad但草签的阵列,当我使用在iOS应用程序加载时使用对象初始化数组

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

谁能告诉我为什么会这样也不行?谢谢!

这里是代码 -

(void) viewDidLoad 
{ 
if (self) { 
    questions = [[NSMutableArray alloc] init]; 
    answers = [[NSMutableArray alloc] init]; 

    // Add objects to the arrays 
    [questions addObject:@"What is 1+1"]; 
    [answers addObject:@"2"]; 

    [questions addObject:@"What is 2+2"]; 
    [answers addObject:@"4"]; 

    [questions addObject:@"What is 3+3"]; 
    [answers addObject:@"6"]; 
} 

[super viewDidLoad]; 

和initWithNibName

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

    // Create two arrays and make the pointers point to them 
    questions = [NSMutableArray array]; 
    answers = [NSMutableArray array]; 

    // Add questions and answers to the arrays 
    [questions addObject:@"From what is cognac made?"]; 
    [answers addObject:@"Grapes"]; 

    [questions addObject:@"What is 7 + 7?"]; 
    [answers addObject:@"14"]; 

    [questions addObject:@"What is the capital of Vermont?"]; 
    [answers addObject:@"Montpelier"]; 

} 
return self; 
} 
+0

你知道initWithNibName:bundle:是否被调用吗?它可能会或可能不会取决于您的应用程序的结构(例如,您是否使用故事板)。把日志声明放在那里看看。 – rdelmar 2012-07-26 05:17:56

+0

它没有被调用。我检查使用NSLog。是的,我正在使用Storyboard。我应该在这里做一些改变,使initWithNibName工作? – wackytacky99 2012-07-26 05:19:22

回答

0

我认为,当你使用一个故事板,利用initWithCoder被调用,而不是initWithNibName代码:捆绑:,这样就把数组初始化在那里。

+0

我可以使用viewDiDLoad吗?这是建议吗? – wackytacky99 2012-07-26 05:29:32

+0

当然,你可以把它放在那里。我认为这并不重要,你应该选择哪一个。 – rdelmar 2012-07-26 05:35:58

+0

完美!谢谢。 – wackytacky99 2012-07-26 05:36:19

相关问题