我已经看过一些教程如何使用嵌套部分制作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
有什么想法吗?
感谢。
答案 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"]
您将获得julianDateAdded
和timeAdded
的每个唯一组合的项目数。所以我认为这将为每个部分的每个子部分提供数字。