【问题标题】:User vs database driven UI updates用户与数据库驱动的 UI 更新
【发布时间】:2017-08-17 12:15:25
【问题描述】:

假设我有一个集合视图,其中填充了来自领域的对象。

如果用户要求集合视图删除一个项目,那么处理该项目的最响应方式是什么?

应该——

a) 请求被发送到领域,UI 更新由新通知驱动

b) 集合视图立即删除项目(无论是从视觉上还是从它自己的模型中),然后从 Realm 通知中静默接受新模型。

对于 UI 更新而言,Realm 更新是否足够快?

【问题讨论】:

    标签: swift uicollectionview realm nscollectionview


    【解决方案1】:

    如果Realm 数据库像缓存一样工作,并且您在服务器上也有数据,则更喜欢使用第一种方式,因为任何原因对服务器的请求都可能失败,在这种情况下您可能不想删除该项目。如果Realm 只是您的数据的一个地方,您可以使用第二种方式,因为您不需要处理不必要的步骤(我的意思是处理addNotificationBlock 并使用ui 执行一些操作),您只需要删除项目在 ui 中并删除领域中的项目,就是这样。

    对于 UI 更新而言,Realm 更新是否足够快?

    当然,在这种情况下,您不会像调用deleteRows 那样获得真正平滑的删除动画。但是你可以试试。也许对于少量数据它可以正常工作。

    【讨论】:

    • 我同意这个建议。从领域中删除对象,然后在您的领域通知块中,更新您的UICollectionView'。 Realm 速度超级快,可以毫无问题地处理数千个对象。
    • @CliftonLabrum,是的,当然。所有领域查询都是惰性的,因此没有任何类型的“从任何地方加载所有内容”的东西。领域的巨大优势。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多