繁体   English   中英

ios表与按以下类别分组的数据

[英]ios table with data that is grouped by

我有一个概念性的sql查询,它在核心数据表t上使用group by,如下所示:

从t组的a,b中选择a,b,sum(c)c_sum;

使用核心数据,我可以运行查询(如使用GROUP,使用SUM()的线程GROUP BY中所述)。 我想使用NSFetchedResultsController。 我尝试了以下方法:

  1. 在我的“刷新”操作中,我尝试直接使用与上述按查询分组相对应的获取请求,但是遇到了“ NSFetchedResultsController不支持使用NSDictionaryResultType进行更改跟踪和获取请求的问题”。

  2. 然后我想到了以下内容。 将记录保存在表t中。 然后运行上面的查询并将结果保存在另一个表t1中。 将nsfetchedresultsscontroller绑定到从t1开始的常规提取。 不幸的是,在这种情况下,由于文档保存操作是异步的,因此遇到了group by查询在db中看不到任何内容的问题。

  3. 为了解决上述问题,我尝试在将数据插入表t之后立即保存文档-但随后出现错误“此NSPersistentStoreCoordinator没有持久性存储。它无法执行保存操作。”

对于我来说,明显的替代方法是进行分组并以编程方式求和,然后将数据插入t1,但我想我想在这里问一下其他人是否有任何想法。 我还没有尝试过的第二个方法是听文档保存通知,然后将其插入到t1中。 另一种选择是不使用nsfetchedresultscontroller-我想避免。

有什么想法吗?

谢谢!

更新 :可以检测保存通知,然后使用按查询分组的t从t1填充t1,但这不是一个很好的解决方案,因为:1.我对保存操作发生的时间有所保留。2.每次保存时,都会重新填充表这显然不是一个好主意。

好。 我终于弄清楚了如何保存上下文,即如何成功地执行选项3而又不会遇到提到的错误。 选项3涉及使用UIDocument saveToURL:forSaveOperation:completionHandler:操作。 那就是我尝试过的。 但是我犯的错误是我正在使用与原始文档实例(我一直在使用的托管上下文)相同的URL创建一个新的UIManaged Document实例。

因此,现在在我的viewWillAppear中,我还将文档另存为一个属性,同时又保存了托管上下文属性。 然后,当我运行saveToUrl时,将使用属性文档实例-在这种情况下,不会出现错误“此NSPersistentStoreCoordinator没有持久性存储。它无法执行保存操作”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM