というFetchRequest
名前のモデル クラスに がありContentManager
ます。かなりの量のデータを取得するため、完了するまで画面は空白になります。取得したViewController
結果を表示する で読み込みインジケータを表示したいので、FetchRequest
が完了したときにコールバックを取得し、それを に渡してViewController
読み込みインジケータを停止させたいと思います。これは可能ですか?
クラスFetchRequest
からは次のとおりです。ContentManager
- (NSArray*)recipesForMagazine
{
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Recipe" inManagedObjectContext:managedObjectContext];
[request setEntity:entity];
NSString* path = [[NSBundle mainBundle] pathForResource:@"magazine_recipe_guids" ofType:@"plist"];
NSArray* recipeGuids = [NSArray arrayWithContentsOfFile:path];
NSPredicate* predicate = [NSPredicate predicateWithFormat:@"guid IN %@",recipeGuids];
[request setPredicate:predicate];
NSSortDescriptor* sort = [[NSSortDescriptor alloc] initWithKey:@"title" ascending:YES selector:@selector(localizedCaseInsensitiveCompare:)];
[request setSortDescriptors:[NSArray arrayWithObject:sort]];
[sort release];
NSError* error = nil;
NSArray* fetchResults = [managedObjectContext executeFetchRequest:request error:&error];
[request release];
return fetchResults;
}
ここで私はそれを設定しましたViewController
self.magazineRecipes = [[ContentManager defaultManager] recipesForMagazine];
次のように fetchrequest メソッドを設定したいと思います。
- (NSArray*)recipesForMagazine:(void (^)(BOOL success))block
または何か、だからviewcontroller
私はこのようにそれを呼び出すことができます
self.magazineRecipes = [[CTContentManager defaultManager] recipesForMagazine:^(BOOL success) {
if (success) {
//stop activity indicator view
}
}];
私の考え方が正しいかどうかはわかりませんが、事前に助けてくれてありがとう!