【问题标题】:nsobject vs nsmanagedobject pro and consnsobject 与 nsmanagedobject 的优缺点
【发布时间】:2014-12-23 07:42:22
【问题描述】:

我在我的项目中使用核心数据,并在 fetchResultController 的帮助下直接在 viewControllers 中使用 NSManagedObject。
但是根据新的干净代码架构或 VIPER 方法,它是说在视图或演示者类中使用 PONSO 或 NSOject 而不是 NSManagedObject。

谁能告诉我上述场景中 NSManagedObject 与 NSObject 的优缺点?

【问题讨论】:

    标签: ios iphone nsmanagedobject nsobject


    【解决方案1】:

    我列出了这两种方法的优点:

    保持 NSManagedObject 方法:

    1. 更简单
    2. 更快(NSManagedObjects 仅在需要时从内存中加载其属性)
    3. 您可以使用 NSFetchedResultsController:这可能是个人观点,但在我的应用程序中,我大量使用 NSFetchedResultsController,因为它很容易保持表格视图的界面与数据保持一致。

    VIPER 方法:(将每个 NSManagedObject 解码为 PONSO)

    1. 您可以非常灵活地切换存储后端。 IE。如果您想从核心数据切换到 .plist 文件(可能不是最好的主意)。
    2. 您可以使用多个数据源:即将当前登录用户的个人资料存储在 Core Data 中,但将他的访问令牌存储在钥匙串中。其他对象可以简单地使用 PONSO,其中包含来自两个来源的数据。
    3. 测试:如果您能够向交互器传递 PONSO,而不必创建 NSManagedObjectContext、NSFetchRequest 和 NSManagedObjects,那么测试交互器会容易得多。

    【讨论】:

    • 谢谢卢卡斯。经过研究,我选择了 VIPER 方法,因为我使用 Parse 作为服务器端,并且它具有 PFObject 和 Coredata 具有 NSManagedObject。因此最好在 Viewcontroller 中获取来自 Parse 或 ManagedObject 的 PONSO,并且可以灵活地将解析切换到其他后端。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-26
    • 2017-04-29
    • 1970-01-01
    • 1970-01-01
    • 2011-11-03
    • 2016-10-29
    • 2023-04-04
    相关资源
    最近更新 更多