我有2个ViewControllers,第一个有一个数组,一旦ViewController出现就被一个获取请求填充。第二个ViewController引用了该数组。但是,这是在引用它之前引用一个空数组 我希望在数组填满后获得引用。这是一个片段。
--conf spark.executor.extraJavaOptions="-Duser.timezone=America/Los_Angeles"
--conf spark.driver.extraJavaOptions="-Duser.timezone=America/Los_Angeles"
感谢。
答案 0 :(得分:1)
以下是解决方案:
class VC1: UIViewController {
lazy var coreDataObjects = fetchRequestThatFillsTheArray()
func fetchRequestThatFillsTheArray() {
//calling NSFetchRequest
}
}
如果您仍想要原始代码的解决方案,或者您在fetchRequestThatFillsTheArray()
中遇到问题lazy
。您必须使用NSNotification
。阅读Notification Programming Topics
---更新您的评论----
您应该稍微更改一下代码。
class VC1: UIViewController {
lazy var coreDataObjects:[NSManagedObject] = self.fetchRequestThatFillsTheArray()
func fetchRequestThatFillsTheArray() -> [NSManagedObject] {
//calling NSFetchRequest
}
}
但是,由于您在self.property
中使用了fetchRequestThatFillsTheArray()
,因此无法使用此解决方案。
您必须使用NSNotification
。这意味着您在fetchRequestThatFillsTheArray()
完成后发送通知。并在vc2
中注册通知。当vc2
收到通知时,它会按照自己的意愿行事。