现在我有这样的事情:
var currentStatement = Statement()
Where 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()
不是正确的方法。
答案 0 :(得分:1)
您需要声明currentStatement
是可选的。您无法使用Statement()
初始化它,因为它不会调用指定的初始值设定项。但是,在拥有托管对象上下文之前,您无法调用指定的初始值设定项。使其成为可选项可以在初始化拥有对象时不要求您初始化变量来解决问题。
完成后,请更改viewDidLoad
中的行以为其指定值。像
self.currentStatement = Statement(context: coreDataStack.managedContext)
(请注意self.
在那里不是必要的,但可以让它更清晰。)