在iOS应用程序加载时使用对象初始化数组
我一直在线浏览一些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;
}
我认为,当你使用一个故事板,利用initWithCoder被调用,而不是initWithNibName代码:捆绑:,这样就把数组初始化在那里。
我可以使用viewDiDLoad吗?这是建议吗? – wackytacky99 2012-07-26 05:29:32
当然,你可以把它放在那里。我认为这并不重要,你应该选择哪一个。 – rdelmar 2012-07-26 05:35:58
完美!谢谢。 – wackytacky99 2012-07-26 05:36:19
你知道initWithNibName:bundle:是否被调用吗?它可能会或可能不会取决于您的应用程序的结构(例如,您是否使用故事板)。把日志声明放在那里看看。 – rdelmar 2012-07-26 05:17:56
它没有被调用。我检查使用NSLog。是的,我正在使用Storyboard。我应该在这里做一些改变,使initWithNibName工作? – wackytacky99 2012-07-26 05:19:22