带有未知内容数组的索引tableView?

时间:2014-06-24 19:48:03

标签: ios objective-c uitableview

我想使用右侧的快速跳转索引为我的tableView songsTable创建一个索引。 songsTable显示songsArray的内容,其中显示了用户iPod库中的歌曲列表:

但是,所有展示如何索引tableView的教程都已经知道了它们的内容。这些是我到目前为止看过的教程:AppCodaiPhoneDevCentralInnofied以及其他一些教程。他们都使用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的内容是什么,就像实际提供表格内容的其他教程一样。

2 个答案:

答案 0 :(得分:2)

您无法逐个向NSArray添加对象。您可以将它们全部添加到一行中,也可以将数组复制到数组中。 您可能正在寻找的是NSMutableArray而不是NSArray。 这允许您随意添加对象。

答案 1 :(得分:1)

你可能应该在内部循环中实现略有不同的逻辑:

    NSString *firstLetter = [songsArray[i] substringToIndex:1];

    if (![self.alphabetArray containsObject:firstLetter]) {
        [self.alphabetArray addObject:firstLetter];
    }

<强>更新

这可以帮助您解决崩溃问题。但我仍然不明白你在未知内容下的意思。我在提供的代码中看不到与此问题相关的任何内容。