将 NSManagedObjectContext 传递给函数时使用 inout 关键字?
Use the inout keyword when passing an NSManagedObjectContext into a function?
我正在开发我的第一个真正的核心数据应用程序,并且已经能够使用 segues 在我的整个应用程序中成功地将指针传递到我的 managedObjectContext
实例。我 运行 遇到了一个问题,但是因为我正处于十字路口,我需要将我的 managedObjectContext
传递给函数 .
问题
由于函数是按值传递的 default,我假设我会制作 我的 managedObjectContext 实例的一个副本 从而可能击败将原始指针传递给我的 managedObjectContext 实例的目的。
我应该使用 inout
修饰符来避免创建我的 managedObjectContext 的副本吗?
NSManagedObjectContext
是 class,因此是引用类型。引用类型不需要通过 inout
来共享实例。为引用类型传递的 "value" 是指向它们的指针。
在从 ObjC 到 Swift 的过渡过程中丢失的一件事(IMO)是引用类型不再有任何指示符。在 ObjC 中,您可以通过类型中的 *
来识别它们。在Swift,你只需要知道哪个是哪个。
我正在开发我的第一个真正的核心数据应用程序,并且已经能够使用 segues 在我的整个应用程序中成功地将指针传递到我的 managedObjectContext
实例。我 运行 遇到了一个问题,但是因为我正处于十字路口,我需要将我的 managedObjectContext
传递给函数 .
问题
由于函数是按值传递的 default,我假设我会制作 我的 managedObjectContext 实例的一个副本 从而可能击败将原始指针传递给我的 managedObjectContext 实例的目的。
我应该使用 inout
修饰符来避免创建我的 managedObjectContext 的副本吗?
NSManagedObjectContext
是 class,因此是引用类型。引用类型不需要通过 inout
来共享实例。为引用类型传递的 "value" 是指向它们的指针。
在从 ObjC 到 Swift 的过渡过程中丢失的一件事(IMO)是引用类型不再有任何指示符。在 ObjC 中,您可以通过类型中的 *
来识别它们。在Swift,你只需要知道哪个是哪个。