在 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 数组?
我不应该更好地在 awakeFromNib
中设置 NSArray
(因为我的所有 ViewControllers 都使用了 stroyboard 场景)?或者也许在 initSomething
(是正确的方法 initWithStyle
吗?)
最佳答案
编写一个返回数组的类方法。
+ (NSArray *)titles
{
static NSArray *_titles;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
_titles = @[@"Your Move",
@"Their Move",
@"Won Games",
@"Lost Games",
@"Options"];
});
return _titles;
}
然后您可以在任何需要的地方访问它,如下所示:
NSArray *titles = [[self class] titles];
关于ios - 字符串的静态 NSArray - 如何/在哪里初始化 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20544616/
相关文章:
objective-c - 对 block 进行类型定义是如何工作的
objective-c - iOS:如何将 UIViewAnimationCurve 转换为 UIV
objective-c - 有没有一种简单的方法可以将 ISO8601 时间戳转换为格式化的 NSD
objective-c - [NSNull null] 和 nil 有什么区别?
objective-c - 在 Objective C 中使用 extern
objective-c - 尝试标记应用程序图标,但未获得用户标记应用程序的权限 : iOS 8 X
ios - 使用自动布局,如何根据图像使 UIImageView 的大小动态变化?