gpt4 book ai didi

ios - UITableView 中的多个 Nib 文件

转载 作者:行者123 更新时间:2023-11-29 02:56:17 25 4
gpt4 key购买 nike

我目前正在从 Parse.com 检索对象并将它们保存到 CoreData。

接下来我将使用 NSFetchedResultsController 从 CoreData 中检索对象。然后这些对象将用于创建 TableView 。我从 CoreData 检索的所有内容都使用以下代码存储在 NSArray 中:

NSArray *fetchedObjects = _fetchedResultsController.fetchedObjects;

使用获取的对象数组,我想根据每个对象的类型加载特定的 nib 文件。所以在 cellForRowAtIndexPath 中使用以下 for 循环我试图实现这一点:

for (NSManagedObject *o in fetchedObjects)
{
if ([[o valueForKey:@"type"] isEqual: @"Type1"])
{
Type1CustomCell *cell = (Type1CustomCell *)[tableView dequeueReusableCellWithIdentifier:@"type1CustomCell"];
return cell;
}
else if ([[o valueForKey:@"type"] isEqual: @"Type2"])
{
Type2CustomCell *cell = (Type2CustomCell *)[tableView dequeueReusableCellWithIdentifier:@"type2CustomCell"];
return cell;
}
}

前面的代码只是使用 2 种类型的示例,但在应用程序中可能会有更多。

return 语句导致循环结束,这意味着循环永远不会超过第一个对象。有人可以告诉我如何根据我检索到的对象的类型加载多个 nib 文件的正确方向吗?

谢谢

最佳答案

因此,唯一一次出队并返回可重用的 Collection View 单元格是在请求单元格的数据源方法中。

当此方法触发时,它会为您提供一个特定的索引路径——它试图创建的行的索引路径。

您不需要在该方法中循环遍历任何内容。您只需要转到要存储数据的任何集合的正确索引,然后在该索引处获取对象。使用该数据确定要返回的单元格。

不用 forin 循环,只需抓取一个对象。

NSManagedObject *obj = [fetchedObjects objectAtIndex:indexPath.row];

if ([[obj valueForKey:@"type"] isEqual: @"Type1"]) {
// etc...

我相信你仍然需要一个大的 if-else 结构,但现在我们只是检查 TableView 试图为其创建单元格的特定索引处的对象。

关于ios - UITableView 中的多个 Nib 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23872733/

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