我正在执行'countForFetchRequest'并且它总是比我表中的记录数多1个计数。
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>
关于我做错的任何想法?
答案 0 :(得分:6)
计数始终是准确的,但它会计算内存中的内容(尚未保存)和磁盘上的内容。
正如其他人所建议的那样,进行取指而不是计数并打印出核心数据找到的内容,您将找到答案。