2013-08-26 1 views
1

을 제거하고 다시 삽입 한 후 채워지지 않습니다. CDTVC 파일을 제거하고 다시 추가 할 때까지 모든 데이터베이스 저장 및 가져 오기가 올바르게 작동했습니다. 이제는 아무것도 가져 오지 않습니다. CellForRowAtIndexPath가 호출되지 않고 가져 오기 요청이 데이터베이스의 정확한 항목 수 (각각의 새 항목 반영)를 반환하더라도 numberOfRowsInSection 및 numberOfSections는 모두 0을 반환합니다.jQuery과 스탠포드의 CoreDataTableViewController를 사용하여 응용 프로그램에 내가 일하고 있어요 CoreDataTableViewController

나는 어떤 일이 일어 났는지 전혀 알지 못합니다. 완전히 새로운 Table View Controller를 생성하여 서브 클래스를 다시 만들려고했는데 시뮬레이터와 장치에서 앱을 삭제했습니다. 은 dataSource 및 대리인으로 내 매장은 fetchedResultsController가 설정됩니다 설정 전무하지 않고 CoreDataTableViewController, setFetchedResultsController 및 performFetch 내부의 방법은, 여전히라고되고있다.

감사

+0

는'numberOfSectionsInTableView'와'numberOfRowsInSection'의 반환 값을 확인 했습니까? –

+0

두 개 모두 0을 반환합니다. 이미 numberOfSectionsInTableView를 1로 수정했으나 가져온 것과 행 수를 다시 비교할 수 있습니다. 난 임의의 숫자 (내 databes에있는 것보다 작은)를 반환하려고했는데 충돌이 발생했습니다. – kanstraktar

+0

질문에 혼란 스럽습니다. 'CoreDataTableViewController'는 fetchedResultsController로부터 결과를 얻는'numberOfRowsInSection'의 구현을 제공합니다. 0을 반환하면 가져 오기를 실행하지 않았거나 가져 오기가 0 개의 결과를 반환하는 것일 수 있습니다. 가져 오기가 0 개의 결과를 반환하면 잘못된 가져 오기 요청이 있거나 데이터베이스에 데이터가 없습니다. –

답변

1

최종 답변

채팅 세션 후 내 대답 업데이트 : 당신이 가까운 것을 사용 것 가져온 결과 컨트롤러와

그리고 보통. TLIndexPathToolsTLIndexPathController 대신 NSFetchedResultsController로 전환 문제를 해결.

응답 # 다음과 같은 방법이 제로를 반환 말하고있는 것 같습니다 2

:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
    return [[[self.fetchedResultsController sections] objectAtIndex:section] numberOfObjects]; 
} 

을 그리고 당신은 설정되어 fetchedResultsController을 확인한 당신이 전화했다고 있음 performFetch 결과가 0이 아닌 것을의 fetchedObjects 속성이 아닌 빈 배열을 반환 즉. 그 모든 것들이 사실 일 수 있고 위의 메서드가 0을 반환하는 것을 나는 보지 못합니다. 위의 메서드에 중단 점을 넣고 이러한 것들을 다시 확인할 수 있습니까? 아마도이 방법은 performFetch에 전화하기 전에 호출됩니다. 당신이 붙어 계속하면

, 당신은 내 TLIndexPathTools 라이브러리를 시도 할 수 있습니다. NSFetchedResultsController의 대안을 제공합니다. 핵심 데이터 샘플 프로젝트를 확인하십시오. 당신이 당신의 테이블 뷰 컨트롤러의 fetchedResultsController 속성을 설정하는

대답 # 1

확인합니다. 문제의 설명에서이 속성이 nil 인 것처럼 들립니다.

+0

도움이되기를 바랍니다과 fetchedResultsController 다시하지 전무 – kanstraktar

+0

확인, 업데이트 대답 온다. –

+0

OK, 먼저 모든 답변과 인내심에 감사드립니다. 그 동안 새로운 하위 클래스를 만들었고, fetchedResultsController를 설정하는 기본 코드만으로 아무것도 만들지 않았습니다. 그런데 당신의 대답에 뒤이어, [fetchedObjects count]를 기록했고,이 속성의 이름은 어떻게 든 그랬습니다. 가져온 내 로그와 동일한 숫자를 보여 주었지만 테이블보기에 모든 것을 다시 표시했습니다. 그것은 기적적으로 이상하고 나는 아직도 무슨 일이 일어 났는지 모른다. 나는 이것을 올바른 답으로, 모든 도움을 위해 표시하고, 어떻게 든 코드를 차단 해제했기 때문입니다. 다시 한 번 감사드립니다 – kanstraktar

0

세 가지 가능한 솔루션이 호출되고 있지 않습니다 tableView:cellForRowAtIndexPath: 경우 :

  • dataSource 속성이 제대로 설정되지 않고있는 tableview;
  • numberOfSectionsInTableView: 또는 0을 반환한다;
  • 또는 마지막으로 tableView:numberOfRowsInSection:은 0

내 생각을 반환, 난 당신이 우리에게 한 것과 세 번째 갈 것입니다.

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
{ 
    return _fetchedResultsController.sections.count; 
} 

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
    NSUInteger rows = 0; 
    id sectionInfo = [_fetchedResultsController.sections objectAtIndex:section]; 
    rows = [sectionInfo numberOfObjects]; 
    return rows; 
} 
+0

을 실행 얻을 실제로는 0이 나는 ​​내가 fetchedResultsController로 가져 오거나 무엇을 내가해야 일치로 설정 얼마나 반환 이 tableViewController가 이전처럼 작동하도록하려면 어떻게해야합니까? 다시 한 번 감사드립니다 – kanstraktar

+0

나는 가져온 결과 컨트롤러와 관련된 일반적인 방법을 보여주기 위해 내 대답을 편집했습니다. 그것은, CDTVC setFetchedResultsController 및 performFetch의 방법이되지 전무 호출되어 실행 얻을 것 – dulaccc