gpt4 book ai didi

ios - UITableView 核心数据分组和关系

转载 作者:可可西里 更新时间:2023-11-01 04:44:09 28 4
gpt4 key购买 nike

我正在寻求有关我的第一个 iPhone 应用程序的帮助。到目前为止,Core Data 的整个概念非常复杂。


核心数据模型:

Core Data Model

TableView 代码:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
// Return the number of sections.
//return 1;
return [self.fetchedCoursesArray count];
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
// Return the number of rows in the section.

return [self.fetchedRoundsArray count];
}

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

Rounds * rounds = [self.fetchedRoundsArray objectAtIndex:indexPath.row];

cell.textLabel.text = [NSString stringWithFormat:@"Date: %@",rounds.date];
//cell.detailTextLabel.text = [NSString stringWithFormat:@"%@, %@",courses.city,courses.state];
return cell;
}

- (NSString *)tableView:(UITableView *)tableView
titleForHeaderInSection:(NSInteger)section
{
Courses * courses = [self.fetchedCoursesArray objectAtIndex:section];
return courses.name;
}


表格 View 图片(代码结果):

Table View

问题...

问题是分组不正确。它为每个组显示相同的两个项目。轮次需要根据每个类(class)名称进行分组,但我不知道如何在代码中完成此操作,因此我求助于帮助。我现在已经做了几个小时的研究……很多 Stack Overflow 问题和不同的教程都无济于事。

谁能给我一些指导?

更新

以下是数组加载到 View 中时的一些日志:

2013-10-23 23:27:16.771 Test 2[1566:70b] COURSES: (null)
2013-10-23 23:27:16.772 Test 2[1566:70b] ROUNDS: (null)
2013-10-23 23:27:16.773 Test 2[1566:70b] COURSES: (null)
2013-10-23 23:27:16.773 Test 2[1566:70b] ROUNDS: (null)
2013-10-23 23:27:16.775 Test 2[1566:70b] COURSES: (
"<Courses: 0x8ab99a0> (entity: Courses; id: 0x8ab8b40 <x-coredata://5B7FCAFF-4AFF-4DB9-AAE1-93F0B8D920E2/Courses/p1> ; data: {\n city = Arlington;\n holes = 18;\n name = \"Jones Park\";\n rounds = \"<relationship fault: 0x8c35a30 'rounds'>\";\n state = TX;\n})",
"<Courses: 0x8ab9c30> (entity: Courses; id: 0x8ab8b50 <x-coredata://5B7FCAFF-4AFF-4DB9-AAE1-93F0B8D920E2/Courses/p2> ; data: {\n city = Arlington;\n holes = 22;\n name = \"Test Park\";\n rounds = \"<relationship fault: 0x8c35b40 'rounds'>\";\n state = TX;\n})"
)
2013-10-23 23:27:16.776 Test 2[1566:70b] ROUNDS: (
"<Rounds: 0x8c352a0> (entity: Rounds; id: 0x8c345f0 <x-coredata://5B7FCAFF-4AFF-4DB9-AAE1-93F0B8D920E2/Rounds/p1> ; data: <fault>)",
"<Rounds: 0x8c354c0> (entity: Rounds; id: 0x8c34600 <x-coredata://5B7FCAFF-4AFF-4DB9-AAE1-93F0B8D920E2/Rounds/p2> ; data: <fault>)"
)

我看到存在关系问题.. 但我不认为关系是按我需要的方式对它们进行分组的必要条件?也许这会让事情变得更容易。希望这有帮助..

最佳答案

无论该部分是第一门类(class)还是第二门类(class),您似乎都在使用相同的结果。您可能需要更好地深入挖掘数据。

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

Courses * courses = [self.fetchedCoursesArray objectAtIndex:section];
Rounds * rounds = [[courses.rounds allObjects] objectAtIndex:indexPath.row];

cell.textLabel.text = [NSString stringWithFormat:@"Date: %@",rounds.date];
return cell;
}

而且您还需要为 numberOfRowsInSection 做一些类似的事情 - 只是为了确保您返回正确的行数。 NSFetchedResultsController 也值得一试,因为在 UITableView 中处理 Core Data 会让人头疼。

关于ios - UITableView 核心数据分组和关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19554770/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com