在我的viewController中,我有一個NSFetchedResultsController
用於填充tableView
。在viewDidLoad()
我保存當前時間的變量,然後打印出來的NSFetchedResultsController's
didChange AnyObject
回調:viewController沒有被正確刪除?
class MyViewController: UIViewController, NSFetchedResultsControllerDelegate {
var date: Date!
var fetchedResultsController: NSFetchedResultsController<Event>!
override func viewDidLoad() {
super.viewDidLoad()
date = Date()
}
func controller(_ controller: NSFetchedResultsController<NSFetchRequestResult>, didChange anObject: Any, at indexPath: IndexPath?, for type: NSFetchedResultsChangeType, newIndexPath: IndexPath?) {
switch type {
case .insert:
feedTable.insertRows(at: [newIndexPath!], with: .fade)
print(date)
default:
break
}
}
我注意到,當我離開這個觀點再回來這個回調被調用兩次和日期從第一時間我是在視圖被打印以及新之一:
2017年5月14日18時29分42秒0000
2017年5月14日18點30分01秒+0000
我要離開的觀點在這樣一個單獨的功能:
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let controller = storyboard.instantiateViewController(withIdentifier: "HomePage") as? HomeVC
controller?.managedObjectContext = self.managedObjectContext
self.present(controller!, animated: true, completion: nil)
爲什麼這個MyViewController
似乎要堅持即使我離開它回來?我離開它的方式不能正確刪除它嗎?
不要忘記在'viewDidLoad'方法中調用'super'。 –
我是,只是沒有在這個問題中包括它 – MarksCode
你應該更新你的問題。 :) –