2

내 iPhone 응용 프로그램에서 UITableView에서 사용자 개체를 표시하는 NSFetchedResultsController가 있습니다. 사용자 객체에는 0 개 이상의 Log 객체가 있습니다. Log 개체의 요약은 User 개체와 함께 UITableView에 표시됩니다.페치 된 객체를 변경하지 않고 NSFetchedResultsController에서 다시로드를 트리거하려면 어떻게해야합니까?

내 앱은 탭 표시 줄을 사용하므로 로깅 탭의 사용자 입력시 사용자 탭의 NSFetchedResultsController가 다시로드되어야합니다.

지금까지 필자는 사용자 개체에 작성하여 그것을 : 이것은 잘 작동하지만 해킹처럼 조금 보인다

log.user = nil; 
log.user = [User current]; // Same as before. Just triggering a reload. 
NSError *error = nil; 
[myManagedObjectContext save:&error]; 

.

더 좋은 방법이 있나요? Log 객체의 변경 사항이 User 객체에도 전파되도록 지정하는 것과 비슷합니까?

답변

2
[myFetchedResultsController performFetch:&error]; 

하지만 왜 이것을하고 싶습니까? 가져올 새 데이터가있을 때만 다시로드해야합니다. 새 데이터가있는 경우 NSManagedObjectContext의 저장이 올바른 작업입니다.

기본 목표는 무엇입니까?

+0

* 로그 개체에서 사용할 수있는 새 데이터가 * 있습니다. Log 객체는 사용자 화면과 함께 User 객체와 함께 요약됩니다. 그러나 Log 개체 만 업데이트해도 가져온 User 개체가 새로 고쳐지지 않습니다. – geon

+1

관련 뷰 컨트롤러에 있다면'-reloadData'에 대한 호출로 충분할 것입니다. 그렇지 않다면 관련 뷰 컨트롤러가 NSManagedObjectContextDidSaveNotification을 수신 대기하고 테이블을 새로 고칩니다 (또는 특정 세포). 초기 솔루션은 위험한 것으로 느껴집니다. –