【问题标题】:What is the best practice or design pattern to maintain sync activity across multiple views?跨多个视图保持同步活动的最佳实践或设计模式是什么?
【发布时间】:2016-12-16 08:03:15
【问题描述】:

场景:共享/同步领域。具有多个视图的 iOS/Swift 应用程序。

为了在后台保持同步并为多个视图提供自动(实时)更新,我应该使用什么最佳实践设计模式?

查看额外任务应用程序 - 这是有道理的,但该应用程序实际上只有一个活动视图。如果我有多个视图怎么办?

我应该销毁 Realm 数据更改通知并为每个视图重建吗?

【问题讨论】:

  • 要明确 - 数据存储 - 本地和服务器 - 是 Realm。

标签: ios swift design-patterns realm realm-mobile-platform


【解决方案1】:

推荐的方式与单视图控制器相同。为每个视图控制器获取一个 Results 对象,并将其直接用作数据源。您可以使用 Realm 的通知机制来观察 Results 对象。当影响结果的更改从后台线程提交时,将触发通知。 Results 对象已自动更新到最新状态,您只需更新 UI。

【讨论】:

  • 谢谢@kishikawa。我确实认为这将是正确的模式,但想仔细检查。
  • @IanBradbury Yuo 可能想接受这个解决方案 :-)
【解决方案2】:

您可以使用观察者模式。此外,如果您将 CoreData 用于您的模型,那么获取更新/插入/删除回调并相应地更新您的视图也非常容易。

iOS 中的观察者模式:https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/KeyValueObserving/KeyValueObserving.html

在此处获取有关 CoreData 的更多详细信息:https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/CoreData/index.html?utm_source=iosstash.io

【讨论】:

    猜你喜欢
    • 2011-06-21
    • 2010-09-18
    • 2021-10-24
    • 2011-12-26
    • 2013-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多