データをフェッチしようとしていますが、結果が空です!
まず、1 つの NSFetchedResultsController からのデータを含むテーブルがあります。ここまでは、私のコードは正しく、データがあることもわかっています。
しかし、その後、その NSFetchedResultsController をフィルタリングするので、フィルターなしのレコード、つまりすべてのレコードを含む別の NSFetchedResultsController が必要になります。そのため、同じコードを使用して、別の NSFetchedResultsController を使用してデータを再度取得しようとしていますが、結果は常に空です!!!.
これは私が使用している関数です:
+(NSFetchedResultsController*)fetchedResultsControllerForEntity:(NSString*)entityName titleKey:(NSString*)titleKey sectionNameKeyPath:(NSString*)sectionNameKeyPath{
NSFetchRequest *request=[self fetchRequestForEntity:entityName titleKey:titleKey sectionNameKeyPath:sectionNameKeyPath];
return [[[NSFetchedResultsController alloc] initWithFetchRequest:request
managedObjectContext:[self managedContext]
sectionNameKeyPath:sectionNameKeyPath
cacheName:[NSString stringWithFormat:@"%@.%@.%@",entityName,sectionNameKeyPath,titleKey]]autorelease];
}
+(NSFetchRequest *) fetchRequestForEntity:(NSString*)entityName titleKey:(NSString*)titleKey sectionNameKeyPath:(NSString*)sectionNameKeyPath{
NSFetchRequest *request=[[[NSFetchRequest alloc]init]autorelease];
request.entity=[NSEntityDescription entityForName:entityName inManagedObjectContext:[self managedContext]];
NSSortDescriptor* titleSortDescriptor=titleKey?[[NSSortDescriptor alloc ]initWithKey:titleKey ascending:YES]:nil;
NSSortDescriptor* sectionSortDescriptor=sectionNameKeyPath?[[NSSortDescriptor alloc ]initWithKey:sectionNameKeyPath ascending:YES]:nil;
NSMutableArray * sortDescriptors=[[NSMutableArray alloc]init];
if(sectionNameKeyPath){
[sortDescriptors addObject:sectionSortDescriptor];
[sectionSortDescriptor release];
}
if(titleKey){
[sortDescriptors addObject:titleSortDescriptor];
[titleSortDescriptor release];
}
request.sortDescriptors=sortDescriptors;
[sortDescriptors release];
request.fetchBatchSize=20;
return request;
}
同じコードを使用している場合、なぜ NSFetchResultsController が空になるのかわかりません!!!
別のエンティティからデータをフェッチしようとしましたが、結果も空です...
なぜ見つからないのですか?
ありがとう