ios - 尝试创建一个新的 CoreData Entity var 以便稍后在我的应用程序中使用

标签 ios core-data swift3

现在我有这样的东西:

var currentStatement = Statement()

其中 Statement 是 CoreData 中的一个实体。它被定义为类变量。

然后我使用该 var 并将其设置为获取的 Statement 实体。

currentStatement = negativeFetchedResultsController.fetchedObjects![indexPath.row]

我创建 currentStatement 的方式抛出了一个错误,这不是 fatal error ,但我仍然想修复它。

我想这是我想用来创建 Statement 实体的代码。我在 viewDidLoad 方法中定义了它。但问题是因为它是在 viewDidLoad 方法中定义的,无法在其他任何地方使用。

let currentStatement = Statement(context: coreDataStack.managedContext)

如果我希望能够使用 currentStatement var,我应该如何定义它,如

var currentStatement = Statement()

这不是正确的方法。

最佳答案

您需要将 currentStatement 声明为可选。您不能使用 Statement() 对其进行初始化,因为它不会调用指定的初始化程序。但是在拥有托管对象上下文之前,您不能调用指定的初始值设定项。将其设为可选可以解决这种情况,因为在初始化拥有对象时不需要您初始化变量。

完成后,更改 viewDidLoad 中的行以为其分配一个值。类似的东西

self.currentStatement = Statement(context: coreDataStack.managedContext)

(注意 self. 不是必需的,但可以使它更清楚)。

关于ios - 尝试创建一个新的 CoreData Entity var 以便稍后在我的应用程序中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41454079/

相关文章:

ios - 当其中一项被删除时如何调整TableView高度

ios - 关联类型 Swift 3

ios - 当用户未登录 Facebook 应用程序时,Facebook iOS 应用程序登录失败并显示 "Session Expired"

IOS,如何在启动或 viewDidAppear 时获取设备方向

ios - 在 Swift Eureka Form 中循环

iphone - 从 NSColor 数据创建 UIColor

ios - UndoManager 和多个 MOC

ios - 检测应用程序是否从锁定屏幕打开

ios - 分别翻转字符串中的字符

ios - NSClassFromString 不工作