UITableView和Core Data中的嵌套部分

时间:2016-05-13 07:01:02

标签: ios swift uitableview core-data

我已经看过一些教程如何使用嵌套部分制作UITalbeview,但所有教程都使用预定义的结构来保存表数据。

这样:

节  SubSesction    项目    项目  款    项目  第    项目    项目    项目 部分   第    项目 .... 等等。

现在我尝试相同,但是从核心数据中获取项目,让项目实体具有dateAdded和timeAdded,因此该部分将根据dateAdded和subsections进行时间添加。

我得到的是在核心数据中使用group by作为Section部分,但是如何获取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"]

所以我将按日期(分节数)分组计数为fetch result.count和Dictionary,其中包含每个日期每个日期的项目数(所以每个部分的行数)和分组的dateAdded(所以我使用它对于部分标题)

但我现在已经陷入困境,如何为SubSections做同样的事情。我知道不要在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

有什么想法吗?

感谢。

1 个答案:

答案 0 :(得分: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"]

您将获得julianDateAddedtimeAdded的每个唯一组合的项目数。所以我认为这将为每个部分的每个子部分提供数字。