我是XCode的新手,我正在尝试将数据填充到表视图中,该视图是视图控制器的子视图。但我不断收到运行时错误,我无法弄清楚原因。请帮忙。
我做的第一件事是在故事板中创建视图,调整大小,然后将其保留为Dynamic Prototypes表。
然后我按住Control键点击将表格拖到我的View Controller类上,并按预期创建了一个属性:
@interface FAViewController () <UITableViewDataSource>
@property (strong, nonatomic) IBOutlet UITableView *myTable;
@end
请注意,我添加了UITableViewDataSource协议。然后我将此类声明为数据源:
- (void)viewDidLoad
{
[super viewDidLoad];
self.myTable.dataSource= self;
}
最后,我实现了所需的必需方法:
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
if ([tableView isEqual:self.myTable]) {
return 1;
}
return 0;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return 10;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
UITableViewCell *cell = nil;
cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];
cell.textLabel.text = @"Test";
return cell;
}
当我运行应用程序时,我需要这段代码:
int main(int argc, char * argv[])
{
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([FAAppDelegate class]));
}
}
并说信号SIGBART。我希望我已经提供了所有相关信息。如果没有,请告诉我。
答案 0 :(得分:-2)
而不是:
UITableViewCell *cell = nil;
cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];
尝试:
UITableViewCell *cell = nil;
cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];
if (!cell)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:@"cell"];
}
在第一个示例中,当您说“UITableViewCell * cell = nil;”时,您说对象指针未指向任何内容,然后在您尝试使用此对象时发生错误。在我给出的例子中,你避免这种情况发生。