백그라운드에서 데이터를받는 VOIP/Chat 응용 프로그램을 만들고 있습니다. 백그라운드에서 UI 변경을 방지하기 위해 앱이 백그라운드로 이동할 때 NSFetchedResultsController
을 사용 중지해야합니다. 내가 이런 식으로 그것을 할 -배경 사용 응용 프로그램에서 NSFetchedResultsController를 사용하거나 사용하지 않도록 설정하십시오.
- (void)applicationWillResignActive
{
[super applicationWillResignActive];
self.fetchedResultsController.delegate = nil;
}
- (void)applicationDidBecomeActive
{
[super applicationDidBecomeActive];
self.fetchedResultsController.delegate = self.fetchResultControllerDelegate;
}
내가 포 그라운드로 돌아올 때 [self.tableView reloadData]
를 호출 할 필요가없는 것으로 나타났습니다. (EDIT : 응용 프로그램이 백그라운드에 있고 fetchedResultsController.delegate가 nil 인 동안 핵심 데이터 DB가 새 데이터로 업데이트되었음을 명확히하기 위해). 그리고 fetchedResultsController.delegate
을 재 할당하면 바로 테이블이 업데이트됩니다.
- 무엇을 업데이트합니까?
fetchedResultsController
은 재 할당 될 때 프리폼을 가져 옵니까? tableView
과fetchedResultsController
사이에 충돌을 일으킬 수있는 함정이 있습니까?
덕분에 재 할당 할 때 업데이트하게이의 fetchedResultsController의 예비 인출 무엇
fetchResultController는 ManagedObject가 값을 업데이트하고 대리인이 tableView를 업데이트 할 때마다 위임 호출을 위임합니다.보기 – Retro
@Retro 안녕하세요, 저는 알고 있지만 백그라운드에서 이루어진 업데이트는 어디에서나 확인할 수 있습니다. fetchedResultController가 nil 인 경우. – shannoga
@shannoga : 아마도 performFetch 및 reloadData를 트리거하는보기 컨트롤러 (예 : viewWill/DidAppear)에 뭔가가 있습니다. 대리인을 지정할 때 FRC는 * 자동으로 * 다시 가져 오지 않습니다 *. –