我有一个未分类的NSArray名称。我知道如何建立一个静态表,但是我不确定如何制作一个动态表,该表将具有一个带有名称的第一个字母的节,然后在每个节中放入该字母的名字。我知道这听起来像是一个初学者级的编程问题,确实如此。任何帮助都会很棒。 iOS编程的新手,所以我只是想尝试一下所有东西。
最佳答案
您可以使用TLIndexPathTools使用基于块的数据模型初始化程序轻松地完成此操作:
NSArray *items = ...; // and array containing your unorganized data (items of type NSString assumed here)
TLIndexPathDataModel *dataModel = [[TLIndexPathDataModel alloc] initWithItems:items sectionNameBlock:^NSString *(id item) {
return [[((NSString *)item) substringToIndex:1] upperCaseString];
} identifierBlock:nil];
sectionNameBlock
参数是一个块,用于返回给定项目的第一个字母,初始化程序将其用于将数据组织成多个部分。然后,您将在数据源中使用dataModel
(而不是数组),并使用各种API(例如[dataModel numberRowsInSection:]
,[dataModel itemAtIndexPath:]
,[dataModel indexPathForItem:]
等)委托方法。尝试运行"Blocks" sample project作为工作示例。