我想使用右侧的快速跳转索引为我的tableView songsTable
创建一个索引。 songsTable
显示songsArray
的内容,其中显示了用户iPod库中的歌曲列表:
但是,所有展示如何索引tableView的教程都已经知道了它们的内容。这些是我到目前为止看过的教程:AppCoda,iPhoneDevCentral,Innofied以及其他一些教程。他们都使用NSDictionaries存储他们的内容,我使用的是NSArray。
我遵循AppCode教程并且遇到了第一个障碍:
-(void)createAlphabetArray
{
self.alphabetArray = [[NSMutableArray alloc]initWithCapacity:26];
for (int i=0; i< songs.count; i++)
{
NSString *firstletter=[[songs objectAtIndex:i]substringToIndex:1];
if (![self.alphabetArray containsObject:firstletter]) {
[self.alphabetArray addObject:firstletter];
}
}
[songs sortUsingSelector:@selector(localizedCaseInsensitiveCompare:)]; //sorting array in ascending array
NSLog(@"%@", self.alphabetArray);
}
我真的非常困惑,我无法找到对这种情况有用的任何其他教程。任何帮助将非常感激。感谢。
编辑:我说'未知内容&#39;因为我不知道songsArray的内容是什么,就像实际提供表格内容的其他教程一样。答案 0 :(得分:2)
您无法逐个向NSArray添加对象。您可以将它们全部添加到一行中,也可以将数组复制到数组中。 您可能正在寻找的是NSMutableArray而不是NSArray。 这允许您随意添加对象。
答案 1 :(得分:1)
你可能应该在内部循环中实现略有不同的逻辑:
NSString *firstLetter = [songsArray[i] substringToIndex:1];
if (![self.alphabetArray containsObject:firstLetter]) {
[self.alphabetArray addObject:firstLetter];
}
<强>更新强>
这可以帮助您解决崩溃问题。但我仍然不明白你在未知内容下的意思。我在提供的代码中看不到与此问题相关的任何内容。