'countForFetchRequest'를 실행하고 있으며 항상 내 테이블의 레코드 수보다 1 더 많은 수를 반환합니다.빈 테이블에 대해 1을 반환하는 countForFetchRequest
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:[NSEntityDescription entityForName:@"TESTDATA" inManagedObjectContext:self.managedObjectContext]];
NSError *error = nil;
NSUInteger count = [self.managedObjectContext countForFetchRequest:request error:&error];
if(count == NSNotFound) {
// Handle error
}
return count;
테이블이 비어 있으면 1을 반환합니다. 내 테이블에 행이 3 개있는 경우 4를 반환합니다.
sqlite> select count(*) from ZTESTDATA;
0
sqlite>
내가 뭘 잘못하고 있는지에 대한 아이디어가 있습니까?
모든 개체를 저장 했습니까? – Wain
개체의 수를 가져 오기 전에 모든 개체를 직접 제거하려고 시도 했습니까? –
@Kraken, 예 모두 삭제합니다 (실제로 데이터베이스를 제거하고 다시 작성하십시오). 그런 다음 count가 0으로 되돌아옵니다. 그런 다음 앱을 다시 시작하면 카운트가 있어야하는 것보다 많습니다. 관계없이 내가 수행하는 원시 SQL 쿼리는 항상 올바른 카운트를 가지고 있으며, 핵심 데이터 쿼리가 엉망인 것처럼 보입니다. – lostintranslation