2016-05-13 4 views
0

Я видел несколько руководств по созданию UITalbeview с вложенными разделами, но все они используют предопределенную структуру для хранения данных таблицы.Вложенные разделы в UITableView и основные данные

так:

Раздел SubSesction Пункт Пункт Подраздел Пункт Подраздел Пункт Пункт Пункт Раздел Подраздел Пункт .... и так далее.

Теперь я пытаюсь сделать то же самое, но беря Элементы из основных данных, давайте создадим объект ItemAdded и timeAdded, поэтому раздел будет соответствовать dateAdded, а подразделы - timeAdded.

Что я получаю, так это сделать часть раздела с группой по основным данным, но как я могу получить информацию SubSection?

let countJulianDateAdded = NSExpressionDescription() 
    countJulianDateAdded.name = "countItemsAtDate" 
    countJulianDateAdded.expression = NSExpression(format: "count:(julianDateAdded)") 
    countJulianDateAdded.expressionResultType = .Integer32AttributeType 

    let sortDateDesc = NSSortDescriptor(key: "julianDateAdded", ascending: false) 

    let fetch = NSFetchRequest(entityName: "Item") 
    fetch.sortDescriptors = [sortDateDesc] 
    fetch.resultType = .DictionaryResultType 
    fetch.propertiesToFetch = [countJulianDateAdded,"julianDateAdded"] 
    fetch.propertiesToGroupBy = ["julianDateAdded"] 

так что будет иметь количество группировок по дате (количество секций) в качестве выборки result.count и словарь, который содержит количество элементов в Дату на секцию (так Количество строк в секции) и сгруппированные dateAdded (поэтому я использую его для заголовка раздела)

Но я застрял сейчас, как сделать то же самое для подсекций. Я знаю, что не думаю в SQL, но у меня в голове что-то вроде:

Select Count(dateAdded),dateAdded 
     (select count(timeAdded),timeAdded 
     from Item i2 
     where i2.dateAdded = i1.dateAdded 
     Group by timeAdded) 
from Item i1 
Group By dateAdded 

Любые мысли?

Спасибо.

ответ

0

Если добавить timeAdded и как свойство для выборки, и имущество группы по, как это:

let countJulianDateAdded = NSExpressionDescription() 
countJulianDateAdded.name = "countItemsAtDate" 
countJulianDateAdded.expression = NSExpression(format: "count:(julianDateAdded)") 
countJulianDateAdded.expressionResultType = .Integer32AttributeType 

let sortDateDesc = NSSortDescriptor(key: "julianDateAdded", ascending: false) 

let fetch = NSFetchRequest(entityName: "Item") 
fetch.sortDescriptors = [sortDateDesc] 
fetch.resultType = .DictionaryResultType 
fetch.propertiesToFetch = [countJulianDateAdded,"julianDateAdded","timeAdded"] 
fetch.propertiesToGroupBy = ["julianDateAdded","timeAdded"] 

вы получите количество элементов для каждой уникальной комбинации julianDateAdded и timeAdded. Поэтому я думаю, что это обеспечит количество элементов для каждого подраздела каждого раздела.

Смежные вопросы