我需要传递类对象的数组 我有一个名为Student的类,它有一些属性(名称,代码,account_type ....);
我在数据库中调用方法来让所有学生反对
Student_array = [data_base_helper selectAllStudents];
我需要在表格视图中显示学生姓名列表,我制作了名为
的花药数组- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [Student_array count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString * cell_identifer = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cell_identifer forIndexPath:indexPath];
// Configure the cell...
if (cell == nil) {
cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cell_identifer];
}
for(Student * st in student_array){
[self.names addObject:st.student_name];
}
cell.textLabel.text = [names objectAtIndex:indexPath.row ];
return cell;
}
我发现一些删除问题,因为我通过索引构思删除了如何在表视图中传递对象数组
答案 0 :(得分:2)
您的想法是,您不需要使用"名称数组",您可以直接使用您的Students数组:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [Student_array count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString * cell_identifer = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cell_identifer forIndexPath:indexPath];
// Configure the cell...
if (cell == nil) {
cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cell_identifer];
}
Student *student = Student_array[indexPath.row];
cell.textLabel.text = student.student_name;
return cell;
}
如果您需要从tableView中删除学生,您可以轻松地从数组中删除,然后相应地更新tableView,如下所示:
[Student_array removeObjectAtIndex:indexPath.row];
[self.tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
请注意,在上面的代码中,我假设您要删除给定indexPath.row
处的对象,并且Student_array是NSMutableArray
而不是NSArray
ps:您可能想要在Student_array
中重命名students
,因为在Objective-c中,使用大写字母命名对象并使用下划线并不是一个好习惯。可能我也会在student_name
中重命名name
,因为学生只是重复了对象的类型。
答案 1 :(得分:0)
当您从表删除单元格中删除单元格时,对应于已删除单元格的数组Student_array和self.name数组。