Parse バックエンドからの Question オブジェクトを PFQueryTableViewController に入力しようとしています。このメソッド内にブロックを実装するにはどうすればよいですか?
- (PFQuery *)queryForTable // I'm having issues with using the method "findObjectInBackgroundWithBlock" in this method.
{
PFQuery *query = [PFQuery queryWithClassName:self.parseClassName];
[query fromLocalDatastore];
[query orderByDescending:@"createdAt"];
[query findObjectsInBackgroundWithBlock:^(NSArray *parseQuestions, NSError *error) { // Fetch from local datastore
if (parseQuestions != nil) {
NSMutableArray *mutableParseQuestions = [parseQuestions mutableCopy];
self.questions = mutableParseQuestions; // if Set local array to fetched Parse questions
} else {
if ([InternetReachabilityManager isReachable]) {
[query findObjectsInBackgroundWithBlock:^(NSArray *parseQuestions, NSError *error) { // Fetch from Cloud
NSMutableArray *mutableParseQuestions = [parseQuestions mutableCopy];
self.questions = mutableParseQuestions; // if Set local array to fetched Parse questions
[Question pinAllInBackground:parseQuestions]; // Save query results to local datastore
}];
}
}
}];
return query;
}
これは、queryForTable が既にバックグラウンド プロセスになっているためですか? 私はちょうど使用する必要があります
[findObjects のクエリ]
また、フェッチに到達可能性を実装しようとしています。
- ローカル データストアからフェッチしてみる
- データが存在する場合はテーブルにロードする ネットワークに切り替える
- ネットワークが利用可能な場合はブロックを呼び出します
- ネットワーク フェッチの結果をローカル データストアに保存する
このメソッドは、フェッチしたオブジェクトを行に自動的に割り当てることになっていることは知っていますが、PFObject サブクラス オブジェクトを渡す場合の操作方法がわかりません。これが配列に関する私の説明です。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
self.question = [self.questions objectAtIndex:indexPath.row]; // Save one question from row
static NSString *identifier = @"QuestionsCell";
QuestionsCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
if (cell == nil) {
cell = [[QuestionsCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];
}
[cell setQuestion:self.question]; //
return cell;
}
これは、取得した配列を使用して tableView にデータを入力する方法です。
だから私の質問:
- queryForTable 内でブロックを呼び出せないのはなぜですか?
- queryForTable の行へのオブジェクトの自動割り当てを使用して、これを簡単にする方法はありますか?
- インターネットに接続できず、ローカル データストアが空の場合、どうすればよいですか?