2012-01-18 5 views
0

Я создаю простое приложение с использованием Core Data (UIManagedDocument) вместе с UITableView. В настоящее время в TableViewController я проверяю, если база данных существует и либо создание или открытие в случае необходимости с помощью:UITableView numberOfRowsInSection, вызывается до завершения Core DataHandler?

UIDocument saveToURL:forSaveOperation:completionHandler: 

OR 

UIDocument openWithCompletionHandler: 

Проблема, которую я имею, что мои методы DataSource UITableView становятся Вызывается перед обработчиком завершения (который устанавливает fetchedResultsController). Как следствие, когда UITableView называет:

UITableView tableView:numberOfRowsInSection: 

fetchedResultsController (где он получает количество строк) остается пустым.

Мое понимание заключается в том, что у вас должен быть создан/открыт документ, чтобы настроить fetchedResultsController, поскольку он нуждается в действительном файле managedObjectContext. Это мой первый набег на Core Data, поэтому любая помощь/информация будут высоко оценены.

...

EDIT: Я посмотрел на это немного больше, и хотя я не понял, это все же я думаю, что его просто случай перемещения вещей вокруг и проверки того, что все происходит в более правильный порядок.

ответ

1

Вашего стол метод делегат мог бы сделать это:

numberOfRowsInSection { 
     if (myFetchedResultsController) { return <WhateverYouNormallyDoHere>; } 
     return 0; 
} 

, а затем в обработчике завершения, просто обновите таблицу

[myTableView reloadData]; 
+0

Высокой оценкой Ray, тот очень хорошее предложение приемлемо. – fuzzygoat