现在我有这样的事情:
var currentStatement = Statement()
其中Statement是CoreData中的实体。它被定义为类var。
然后,我使用该var并将其设置为获取的Statement实体。
currentStatement = negativeFetchedResultsController.fetchedObjects![indexPath.row]
我创建currentStatement的方式会引发错误,这不是致命错误,但我仍然想修复它。
我认为这是我要用来创建Statement实体的代码。我是在viewDidLoad方法中定义的。但是问题在于,因为它是在viewDidLoad方法中定义的,因此无法在其他任何地方使用。
let currentStatement = Statement(context: coreDataStack.managedContext)
如果我想能够使用currentStatement var,我应该如何定义它,如
var currentStatement = Statement()
这不是正确的方法。
您需要声明currentStatement
是可选的。您不能使用来初始化它,Statement()
因为它不会调用指定的初始化器。但是,直到拥有托管对象上下文,您才能调用指定的初始化程序。将其设置为可选可解决这种情况,因为在初始化拥有对象时不需要您初始化变量。
完成此操作后,请更改行以为viewDidLoad
其分配值。就像是
self.currentStatement = Statement(context: coreDataStack.managedContext)
(请注意,self.
此处没有必要,但可以使其更清楚)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句