静态NSArray字符串 - 在View Controller中初始化的方式/位置

 智慧与财富的拥有者_678 发布于 2023-02-11 11:56

在Master-Detail应用程序中,我想显示一个标题为5个部分的TableView:

    你的举动

    他们的举动

    赢得了比赛

    失落的游戏

    选项

所以我在Xcode 5.0.2中创建了一个空白的Master-Detail应用程序,然后在它的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
{
     ....
}

但上面的两个尝试都给我语法错误:

在此输入图像描述

更新:

令我惊讶的是,对于这个简单的问题有很多建议,但作为iOS/Objective-C新手,我不确定,哪种解决方案最合适.

dispatch_once - 在多线程应用程序中执行某些操作不是运行时操作吗?这不是太过分了吗?我期待一个用于启动const数组的编译时解决方案......

viewDidLoad - 当我的应用程序在后台和前台之间切换时,是不是不必要一次又一次地启动我的const数组?

我不应该更好地设置NSArrayin awakeFromNib(因为我使用所有ViewControllers的stroyboard场景)?或者也许initSomething(正确的方法initWithStyle?)

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有