countForFetchRequest 对于空表返回 1

2024-03-14

我正在执行“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> 

关于我做错了什么有什么想法吗?


计数始终准确,但它会计算内存中的内容(尚未保存)和磁盘上的内容。

正如其他人所建议的那样,进行提取而不是计数并打印出核心数据找到的内容,您就会找到答案。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

countForFetchRequest 对于空表返回 1 的相关文章

随机推荐