现在我有这样的东西:
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/