我正在像这样初始化数据源:
@interface SelectWifiViewController() {
NSArray *exampleNetworks;
}
@end
和:
- (void) viewDidLoad: (BOOL) animated {
[super viewDidLoad];
exampleNetworks = [NSArray arrayWithObjects:@"network 1", @"network 2", "network 3", nil];
}
我在这里使用数据源:
- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *tableCellIdentifier = @"wifiNetworkCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:tableCellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefaultreuseIdentifier:tableCellIdentifier];
}
cell.textLabel.text = [NSString stringWithFormat:@"%@, Test", [exampleNetworks objectAtIndex:indexPath.row]];
return cell;
}
这是行不通的; “(空)测试”打印在每个单元格上。
编辑:
这是我导航到此 View Controller 的方式:
- (void) navAction {
UIStoryboard *selectWifiView = [UIStoryboard storyboardWithName:@"SelectWifiView" bundle:nil];
UIViewController *vc = [selectWifiView instantiateViewControllerWithIdentifier:@"SelectWifiView"];
[self.navigationController pushViewController:vc animated:YES];
}
最佳答案
没有这样的方法:
- (void)viewDidLoad:(BOOL) animated { ... }
你的意思是:
- (void)viewDidLoad { ... }
您当前的方法永远不会被调用,但如果您消除它
animated
参数,应该是。我建议添加断点和/或
NSLog
每当您怀疑某个特定方法没有被调用时,您认为它应该被调用。这将确认它是否被调用,如果没有,您可以开始考虑它可能无法到达该代码行的各种原因(在这种情况下,因为方法签名不正确)。
关于ios - Objective-C: TableView 数据源的实例变量未初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48143921/