【问题标题】:Use the inout keyword when passing an NSManagedObjectContext into a function?将 NSManagedObjectContext 传递给函数时使用 inout 关键字?
【发布时间】:2016-05-12 15:56:23
【问题描述】:

我正在开发我的第一个真正的 Core Data 应用程序,并且已经能够使用 segue 在整个应用程序中成功地将指针传递给我的 managedObjectContext 实例。然而,我遇到了一个问题,因为我正处于一个十字路口,我需要将我的 managedObjectContext 传递给一个函数

问题

由于函数是 default 的值传递,我假设我将制作我的 managedObjectContext 实例的副本,因此可能会破坏将原始指针传递给我的 managedObjectContext 实例。

我应该使用 inout 修饰符来避免创建 managedObjectContext 的副本吗?

【问题讨论】:

    标签: ios swift core-data nsmanagedobjectcontext inout


    【解决方案1】:

    NSManagedObjectContext 是一个类,因此是一个引用类型。引用类型不需要通过inout 来共享实例。为引用类型传递的“值”是指向它们的指针。

    在从 ObjC 到 Swift 的过渡中丢失的一件事(IMO)是引用类型不再有任何指示符。在 ObjC 中,您可以通过它们类型中的 * 来识别它们。在 Swift 中,你只需要知道哪些是哪些。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-05
      • 2012-11-19
      • 1970-01-01
      • 2020-08-17
      • 2010-09-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多