У меня есть таблица, где мне нужно показать несколько разделов.Вы должны представить этот стол как список воспроизведения ваших песен.В верхнем первом разделе мне нужно отобразить ячейку с кнопкой, которая добавит больше песен в список воспроизведения, а другие разделы табличного представления - это заголовки заголовков категории Музыка (например, поп, рок и т. Д.).Каждый из этих разделов содержит ячейки, которые являются названиями песен.
У меня есть массив песен, который называется так: var songsGroups = [SongGroup]
.На самом деле это мой источник данных.
SongGroup
содержит несколько свойств:
var categoryName: String
var songs: [Songs]
Но проблема возникает на следующем уровне.Мне каждый раз нужно проверять indexPath.section и делать так:
if indexPath.section == 0 {
// this is a section for ADD NEW SONG BUTTON cell no need in header title as there is no data repression only static text on the cell.
} else {
var musicCategoryName = songsGroups[indexPath.seciton - 1]. categoryName
headerTitle.title = musicCategoryName
}
Как вы видите, мой код стал волшебным, добавив этот крутой -1
магический номер.Который я переигрываю совсем не люблю.
В качестве идеи я могу попытаться объединить мой раздел ADD NEW SONG BUTTON (добавив некоторый дополнительный объект) с массивом songsGroups
и создать NSArray для этих целей.,Как в Objective-C, как вы помните.Тогда мой массив источника данных будет выглядеть так:
some NSArray = ["empty data for first cell", songsGroups[0], songsGroups[1]... etc]
Так что нет необходимости проверять какие-либо разделы, которым мы можем доверять наш массив, чтобы построить все, и даже если я добавлю больше пустых ячеек данных, нетмне нужно обработать мой код через блок if и добавить тонны магических чисел.
Но проблема, которую я вижу здесь, заключается в том, что мы не используем явные типы массивов, и это расстроено.
Такможет быть, вы знаете более красивые решения, как решить мою проблему.