我在我的iOS应用程序中使用CoreData。当我杀死我的应用程序并再次启动它时,我就有了一个计算所有表中记录总数的方法。但是它没有执行,我收到的信号是program signal received "SIGTERM"
-(int)getAllCount{
NSLog(@"start");
int returnCount=0;
NSMutableArray *tempArr=[[NSMutableArray alloc]initWithObjects:@"TempFirstAid",@"TempArticles",@"TempSymptom",@"TempIndexMaster",@"TempIndexSubMaster",@"TempIndexDetails", nil];
for (int i=0; i<[tempArr count]; i++) {
NSEntityDescription *entityDesc = [NSEntityDescription entityForName:[tempArr
objectAtIndex:i] inManagedObjectContext:[appDelegate managedObjectContext]];
NSFetchRequest *request2 = [[NSFetchRequest alloc] init];
[request2 setEntity:entityDesc];
NSError *error;
NSArray *objects = [[appDelegate managedObjectContext] executeFetchRequest:request2
error:&error];
returnCount=returnCount+[objects count];
}我在View Did Load中调用此方法
发布于 2012-08-17 22:23:18
您应该使用:
- (NSUInteger)countForFetchRequest:(NSFetchRequest *)request error:(NSError **)error而不是仅仅为了获得计数而获取所有对象。我猜你遗漏了代码的一部分,因为返回值丢失了。另一件事:看起来你是从主线程调用的。这可能会导致你的应用程序冻结,并在一段时间内(在大型数据库上)没有响应。
根据您对问题的描述,似乎这个方法甚至不是问题所在,因为它实际上并没有执行。
https://stackoverflow.com/questions/12004407
复制相似问题