Ios 如何使数组中的每个字符串都是自己的UITableViewCell,每个字符串都位于自己的节中?

Ios 如何使数组中的每个字符串都是自己的UITableViewCell,每个字符串都位于自己的节中?,ios,objective-c,uitableview,Ios,Objective C,Uitableview,在我的viewDidLoad中,我设置了一系列议程项目,如下所示: self.agendaTableArray = @[@"No events today!", @"No events today!", @"No events today!", @"No events today!", @"No events today!", @"No events today!", @"No events today!", @"No events today!", @"No events today!", @

在我的
viewDidLoad
中,我设置了一系列议程项目,如下所示:

self.agendaTableArray = @[@"No events today!", @"No events today!", @"No events today!", @"No events today!", @"No events today!", @"No events today!", @"No events today!", @"No events today!", @"No events today!", @"No events today!", @"No events today!", @"No events today!", @"No events today!", @"No events today!", @"No events today!", @"Dinner with Rebekah", @"Soccer game", @"Denist appt.", @"Celebrate job offer, drinks with Pierre!", @"No events today!", @"No events today!", @"No events today!", @"No events today!", @"No events today!", @"No events today!", @"No events today!", @"No events today!", @"No events today!", @"No events today!", @"No events today!"];
我想要的是这个数组中的每一个字符串都在一个单独的单元格中,这些单元格中的每一个都在它自己的部分中。到目前为止,我的
cellforrowatinexpath
是这样的:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *MyIdentifier = @"MyReuseIdentifier";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier];
    if (!cell) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:MyIdentifier];
    }

    cell.textLabel.text = self.agendaTableArray[indexPath.section];
    cell.textLabel.font = [UIFont systemFontOfSize:14];

    [self whatSectionsAreVisible];

    return cell;
}
问题是,这段代码将不同单元格中的所有字符串抛出到同一节下,而不是它们自己的节中。如果我尝试滚动时出现错误,
***由于未捕获的异常“NSRangeException”而终止应用程序,它也会崩溃,原因:“***-[\uu NSArrayI objectAtIndex::]:索引1超出边界[0..0]”


我设置此表的方式有哪些错误导致了这两个问题?

请确保返回
1
,以获取每个节中的行数和代理中节数的数组大小:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
  return 1;
}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
  return [self.agendaTableArray count];
}

确保为每个节中的行数和代理中节数的数组大小返回
1

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
  return 1;
}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
  return [self.agendaTableArray count];
}

确保为每个节中的行数和代理中节数的数组大小返回
1

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
  return 1;
}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
  return [self.agendaTableArray count];
}

确保为每个节中的行数和代理中节数的数组大小返回
1

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
  return 1;
}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
  return [self.agendaTableArray count];
}


这修复了崩溃问题,但我仍然只能看到数组中的第一个字符串在每个节中重复。在设置标签文本之前,将
indexath.section
self.agendablearray[indexath.section]
记录到控制台,查看这些值。并确保数组中有实际内容。上面问题中的数组都是相同的字符串,因此如果您使用该字符串进行测试,它将正常工作,但仍然是相同的字符串。我记录了这两个内容,它们已正确注销,但表中只显示了重复的相同内容。不是所有的字符串都是相同的,如果你转到第16-19项,会有不同的内容。我甚至试着让阵列中的第二个项目有所不同,但它没有出现。只有数组中的第一项显示,并且重复了30次。如果
indexPath.section
是数组中每个字符串的正确索引,并且
self.agendablearray[indexPath.section]
正在像它应该的那样记录所有字符串,那么其他地方发生的事情会把它搞乱。如果您使用的是故事板,请确保标签都连接在故事板上,并且tableview的委托和数据源设置为上面显示的类。也许您的
WhatSectionsRevible
方法中有什么东西?这修复了崩溃问题,但我仍然只看到数组中的第一个字符串在每个节中重复。Log
indexPath.section
self.agendablearray[indexPath.section]
在设置标签文本之前,请转到控制台,查看这些值是什么。并确保数组中有实际内容。上面问题中的数组都是相同的字符串,因此如果您使用该字符串进行测试,它将正常工作,但仍然是相同的字符串。我记录了这两个内容,它们已正确注销,但表中只显示了重复的相同内容。不是所有的字符串都是相同的,如果你转到第16-19项,会有不同的内容。我甚至试着让阵列中的第二个项目有所不同,但它没有出现。只有数组中的第一项显示,并且重复了30次。如果
indexPath.section
是数组中每个字符串的正确索引,并且
self.agendablearray[indexPath.section]
正在像它应该的那样记录所有字符串,那么其他地方发生的事情会把它搞乱。如果您使用的是故事板,请确保标签都连接在故事板上,并且tableview的委托和数据源设置为上面显示的类。也许您的
WhatSectionsRevible
方法中有什么东西?这修复了崩溃问题,但我仍然只看到数组中的第一个字符串在每个节中重复。Log
indexPath.section
self.agendablearray[indexPath.section]
在设置标签文本之前,请转到控制台,查看这些值是什么。并确保数组中有实际内容。上面问题中的数组都是相同的字符串,因此如果您使用该字符串进行测试,它将正常工作,但仍然是相同的字符串。我记录了这两个内容,它们已正确注销,但表中只显示了重复的相同内容。不是所有的字符串都是相同的,如果你转到第16-19项,会有不同的内容。我甚至试着让阵列中的第二个项目有所不同,但它没有出现。只有数组中的第一项显示,并且重复了30次。如果
indexPath.section
是数组中每个字符串的正确索引,并且
self.agendablearray[indexPath.section]
正在像它应该的那样记录所有字符串,那么其他地方发生的事情会把它搞乱。如果您使用的是故事板,请确保标签都连接在故事板上,并且tableview的委托和数据源设置为上面显示的类。也许您的
WhatSectionsRevible
方法中有什么东西?这修复了崩溃问题,但我仍然只看到数组中的第一个字符串在每个节中重复。Log
indexPath.section
self.agendablearray[indexPath.section]
在设置标签文本之前,请转到控制台,查看这些值是什么。并确保数组中有实际内容。上面问题中的数组都是相同的字符串,因此如果您使用该字符串进行测试,它将正常工作,但仍然是相同的字符串。我记录了这两个内容,它们已正确注销,但表中只显示了重复的相同内容。这不全是同一条路