Uitableview 核心数据返回1,即使获取的对象为零
我在我的应用程序中出现了一个奇怪的错误,我不明白为什么它会这样。如果实体中有0个以上的对象,它将显示正确的数量。如果实体中有0个对象,它将显示1,而不是0(即使它在另一个获取请求中工作正常) 注意:“cell.badgeString”并没有什么特别之处,它只是通过公开指示符显示实体中对象的计数Uitableview 核心数据返回1,即使获取的对象为零,uitableview,core-data,nsarray,nsfetchrequest,Uitableview,Core Data,Nsarray,Nsfetchrequest,我在我的应用程序中出现了一个奇怪的错误,我不明白为什么它会这样。如果实体中有0个以上的对象,它将显示正确的数量。如果实体中有0个对象,它将显示1,而不是0(即使它在另一个获取请求中工作正常) 注意:“cell.badgeString”并没有什么特别之处,它只是通过公开指示符显示实体中对象的计数 if (cell.tag == 0) { NSFetchRequest *request = [[NSFetchRequest alloc] init]; NSEntityDescrip
if (cell.tag == 0)
{
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Uploads" inManagedObjectContext:self.managedObjectContext];
[request setEntity:entity];
[request setIncludesSubentities:NO];
NSArray *results = [self.managedObjectContext executeFetchRequest:request error:nil];
NSArray *resultString = [results valueForKey:@"url"];
NSString *string = [resultString description];
// I'm thinking it has something to do with this right here, maybe that is why it is displaying one instead of zero?
NSArray *count = [string componentsSeparatedByString:@","];
NSString *upload_amount = [[NSNumber numberWithInteger:count.count] stringValue];
cell.badgeString = upload_amount;
}
我不能只做[self.managedContext countForFetchRequest],因为我有一组URL存储在核心数据中的字符串中,我必须首先将它们分开以获得正确的数量
谢谢您的帮助。您的代码非常混乱,主要是因为您使用了奇怪的变量名。例如,
resultString
是一个NSArray
。您调用的另一个数组count
。数组的描述将以括号开始和结束,因此这肯定不是您想要的
如果没有结果,代码中会发生什么
NSArray *results = [self.managedObjectContext executeFetchRequest:request error:nil];
// results is () - an empty array
NSArray *resultString = [results valueForKey:@"url"];
// resultString is () - an empty array
NSString *string = [resultString description];
// string contains "()" or something like that
NSArray *count = [string componentsSeparatedByString:@","];
// count contains ( "()" ) - an array with one string
count.count
是1
,其stringValue
是@“1”
要解决此问题,您可以检查结果。首先计算,如果结果为0,则做出相应的反应