在Master Detail应用程序中,我想显示一个包含5个部分的TableView,标题为:
- 你的行动
- 他们的举动
- 赢得比赛
- 输掉的比赛
- 选项
所以我在Xcode 5.0.2中创建了一个空白的Master Detail应用程序,然后在它的MasterViewController中创建.m(UITableViewController)我正在try 实现以下方法:
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
return _titles[section];
}
然而,My question是如何初始化NSArray_标题的?
我正在try MasterViewController.m:
#import "MasterViewController.h"
#import "DetailViewController.h"
static NSArray *_titles_1 = @[
@"你的行动",
@"他们的举动",
@"赢得比赛",
@"输掉的比赛",
@"选项"
];
@interface MasterViewController () {
NSMutableArray *_games;
NSArray *_titles_2 = @[
@"你的行动",
@"他们的举动",
@"赢得比赛",
@"输掉的比赛",
@"选项"
];
}
@end
@implementation MasterViewController
- (void)awakeFromNib
{
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {
self.clearsSelectionOnViewWillAppear = NO;
self.preferredContentSize = CGSizeMake(320.0, 600.0);
}
[super awakeFromNib];
}
- (void)viewDidLoad
{
....
}
但上述两次try 都会导致语法错误:
UPDATE:
让我惊讶的是,对于这个简单的问题有很多建议,但作为一个iOS/Objective-C新手,我不确定哪种解决方案最合适.
dispatch_once
-在多线程应用程序中执行一次不是一种运行时操作吗?这不是太过分了吗?我期待一个编译时解决方案来启动常量array...
viewDidLoad
-当我的应用程序在后台和前台之间切换时,是否不需要一次又一次地启动我的常量数组?
我是否应该在awakeFromNib
中设置NSArray
(因为我所有的ViewController都使用stroyboard场景)?或者在initSomething
中(正确的方法是initWithStyle
吗?)