[英]iOS: Chat application with CoreData
我正在为iOS开发聊天应用程序。 该应用程序将允许用户创建聊天室并与聊天室中的成员聊天(例如IRC聊天室)。
该应用程序的流程是;
batchsize
用于取请求是20和performfetch
方法被称为在viewDidLoad
问题
问题
有没有更好的方法来处理此要求? 是否可以使用fetchresultcontroller?
如何使用fetchresultcontroller
以分页方式(例如sup或viber)加载聊天。
最好将数据突变和数据获取视为两个单独的任务,这样您就可以同时优化它们。 我强烈考虑阅读本文 ,以获取有关此问题的更多信息:
CoreData专家Marcus Zarra向我展示了以下基于上述Parent / Child方法的方法,但是添加了专门用于写入磁盘的其他上下文。 如前所述,冗长的写入操作可能会在短时间内阻塞主线程,从而导致UI冻结。 这种聪明的方法将写入分离到其自己的专用队列中,并保持UI平滑为按钮。
您将需要在后台线程上处理CoreData。 那里有很多示例( 这里是一个 ),但是我的建议是使用MagicalRecord ,它使CoreData并发操作真的很容易。
所有核心数据操作均在主线程中完成
这是你的问题。 仅通过NSFetchResultController
进行的对象访问应位于主线程上。 更新NSManagedObject
S的关系在后台排队进行了并发孩子NSManagedObjectContext
。
对于你的问题2。
创建一个新的数组-chatArray-并从数据库中进行最后20个聊天,然后使用chatArray加载聊天表视图。 在Tableview标头上显示更多加载按钮,然后当用户到达顶部并点击该按钮时-
从chatArray中删除所有对象,并从数据库中添加最后20条聊天记录,然后再次重新加载表。 这个过程继续进行。
我不擅长fetchresultcontroller,将进行一些研究,并让您确定。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.