В приложении "Мастер-детали" я хочу отобразить TableView с 5 разделами под названием:
- Ваше движение
- Их движение
- Выиграть игры
- Потерянные игры
- Параметры
Итак, я создаю пустое приложение Master-Detail в Xcode 5.0.2, а затем в его MasterViewController.m(которое является UITableViewController) Я пытаюсь реализовать метод:
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
return _titles[section];
}
Мой вопрос - как инициализировать NSArray _titles?
Я пытаюсь в MasterViewController.m:
#import "MasterViewController.h"
#import "DetailViewController.h"
static NSArray *_titles_1 = @[
@"Your Move",
@"Their Move",
@"Won Games",
@"Lost Games",
@"Options"
];
@interface MasterViewController () {
NSMutableArray *_games;
NSArray *_titles_2 = @[
@"Your Move",
@"Their Move",
@"Won Games",
@"Lost Games",
@"Options"
];
}
@end
@implementation MasterViewController
- (void)awakeFromNib
{
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {
self.clearsSelectionOnViewWillAppear = NO;
self.preferredContentSize = CGSizeMake(320.0, 600.0);
}
[super awakeFromNib];
}
- (void)viewDidLoad
{
....
}
но оба примера выше дают мне синтаксические ошибки:
UPDATE:
К моему удивлению, есть много предложений по этому простому вопросу, но как новичок iOS/ Objective-C я не уверен, какое решение является наиболее подходящим.
dispatch_once
- разве это не операция выполнения для выполнения чего-то один раз в многопоточном приложении? Разве это не слишком много? Я ожидал решения для компиляции времени для инициализации массива const...
viewDidLoad
- когда мое приложение меняется между фоном и передним планом, не будет ли лишним инициировать мой массив const снова и снова?
Не следует ли лучше установить NSArray
в awakeFromNib
(так как я использую сценарии стройструктуры для всех моих ViewControllers)? Или, может быть, в initSomething
(правильный метод initWithStyle
?)