ios - 将 NSManagedObjectContext 传递给函数时使用 inout 关键字?

标签 ios swift core-data nsmanagedobjectcontext inout

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

问题

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

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

最佳答案

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

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

关于ios - 将 NSManagedObjectContext 传递给函数时使用 inout 关键字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37191948/

相关文章:

ios - Swift:UIButton textLabel.text 值在 switch 语句中不可用

ios - 从一个上下文到另一个上下文使用 NSManagedObjectID 是否安全?

iOS 相机覆盖捕获图像

ios - WKWebview运行JavaScript

ios - -[__NSDictionaryM isEqualToString :]: unrecognized selector sent to instance , 当我调用此方法时 [self.tableView endUpdates]

swift - 如何从 .mm 调用 swift?

ios - 如何重置 CoreData 应用程序

ios - Core Data 多项编辑效率与随机误差

java - PlayN - iOS 和 Android 上的虚拟键盘

javascript - 在 iOS8 中使用 .focus() 将在触摸后显示虚拟键盘和滚动页面