【问题标题】:When to use a predicate over passing a CoreData object via the prepare method何时使用谓词而不是通过 prepare 方法传递 CoreData 对象
【发布时间】:2017-05-02 09:53:57
【问题描述】:

我目前正在构建一个 iOS 应用程序。我第一次使用 CoreData 并且有一个关于将数据从一个 ViewController 传递到下一个的问题。现在我在 VCa 中设置了一个表格视图,当我点击一个单元格时,我想在 VCb 中获取该对象(人)的详细信息。我一直在考虑用两种不同的方式来做这件事。

  1. 在 prepage 函数中传递 Persons 名称的引用。在 VCb 中,使用谓词将那个人从 CoreData 中取出。在这里使用另一个获取请求是正确的解决方案。这个应用程序中不会有大量数据,所以我认为执行另一个请求不会对系统造成很大负担,但我是 CoreData 的新手。

  2. 在 VCa 中捕获数据对象,并通过准备函数将该对象传递给 VCb。这将使我不必在 VCb 中执行另一个获取请求,但似乎我可能会限制自己以适应未来的扩展。

再说一次,我是 CoreData 的新手,只是想了解一下哪种思维方式更好以及为什么。

【问题讨论】:

    标签: ios swift xcode core-data


    【解决方案1】:

    永远不要获取您已经获取的对象。在您的情况 #1 中,您已经拥有所需的对象,但您会无缘无故地再次获取它。在您的情况下,这可能不是“非常费力”,但这只是意味着您可能没有无缘无故地重复很多工作尚未,但这仍然是一个糟糕的设计。无论如何——这是一个代表一个人的实体。您确定永远不会有超过一个同名的人吗?

    你的第二个想法在这里更好。

    【讨论】:

    • 谢谢汤姆,不,永远不会有两个同名的人,我会在创建人时检查。
    猜你喜欢
    • 1970-01-01
    • 2011-01-19
    • 2012-05-20
    • 2015-10-16
    • 2013-10-24
    • 1970-01-01
    • 2017-05-09
    • 2012-01-08
    • 2011-04-19
    相关资源
    最近更新 更多