Заголовки для tableViewController не работают, возвращает только один заголовок - PullRequest
0 голосов
/ 08 июня 2018

Я пытаюсь добавить заголовки в мой TableViewController, сортируя имена различных аниме-заголовков по первой букве имени в алфавитном порядке.aName - это свойство моего NSObject, называемого AnimeObject, где мои аниме-заголовки существуют в массиве managedAnime.Затем я сохраняю свои имена в основных данных, создавая управляемый объект NS с именем MyAnimeObject.Я беру данные из основных данных и сортирую их.Так что моя проблема в том, что я отлаживаю, я заметил, что моя функция словаря orderMyAnime возвращает только один заголовок раздела или animeSectionTitles, который является A. Мне нужно знать, почему это происходит, чтобы я мог это исправить, любая помощь будет принята с благодарностью.

Вот моя функция orderMyAnime:

func orderMyAnime()
{
    for anime in MyAnime {
        //Time to create a dictionary
        //print(anime.aName)
        let animeKey = String(describing: anime.aName?.startIndex)
        //You need to read it one by one into an array

        if var animeValues = MyAnimeDict[animeKey]
        {
            animeValues.append(anime)
            MyAnimeDict[animeKey] = animeValues
        }else{
            MyAnimeDict[animeKey] = [anime]
        }

    }

    for (key, value) in MyAnimeDict{
        print(String(key), terminator: ": ")
        for v in value{
            print(v.aName!, terminator: ", ")
        }
        print("", terminator: "\n")
    }
    //Get the section titles from the dictionary and sort them in ascending order
    //print(MyAnimeDict.keys)
    animeSectionTitles = [String](MyAnimeDict.keys)
    print (animeSectionTitles.count, "ordermyanime")// shows that I'm only returning a single title
    animeSectionTitles.sort()
}

Вот моя функция с моими заголовками:

override func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
    //return animeSectionTitles[section]
    if searchanimeController.isActive{
        return "Search Result"
    }
    else{
        let animeIndexTitles : [String] = ["A","B","C","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"]
        return animeIndexTitles[section]
       // return animeSectionTitles[section]
    }

}

Вот где я проверяю, возвращаю ли я что-нибудь и прихожукоротко о количестве секций у меня должно быть:

override func numberOfSections(in tableView: UITableView) -> Int {
    // #warning Incomplete implementation, return the number of sections
    if searchanimeController.isActive{
        return 1
    }else{
    print (animeSectionTitles.count, "astcount")
     return animeSectionTitles.count
    }

}
...