AFNetworking
リクエストが終了したときにコールバックを取得することは可能ですか? 私はエッジ ケースがあるアプリを作成しています。ダウンロードされたすべてのアイテムがチェックされますis_deleted
(UI に表示されるべきではありません)。この場合、古いデータを自動的にダウンロードしようとします (新しいAFNetworking
リクエストを作成します)。
loadData
メソッド自体から再度メソッドを呼び出そうとしました。しかし、それは無限ループを作成します。このような:
- (void)loadDataIsOlder:(NSNumber *)older
{
NSURLRequest *request = [NSURLRequest requestWithURL:self.streamUrl];
AFJSONRequestOperation *operation;
operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id jsonObject) {
NSDictionary *data = [jsonObject objectForKey:@"data"];
NSDictionary *meta = [jsonObject objectForKey:@"meta"];
[...]
for (NSNumber *deleted in (NSArray *)[data valueForKey:@"is_deleted"]) {
if ([deleted boolValue] == YES) {
self.shouldTryToLoadMore = YES;
} else {
self.shouldTryToLoadMore = NO;
}
}
if (self.shouldTryToLoadMore == YES) {
[self loadDataIsOlder:[NSNumber numberWithBool:YES]];
}
} [...]
}
だから、それは私がやりたいことをするための他の/より良い方法なのだろうか。
サブ質問
配列(NSArray *)[data valueForKey:@"is_deleted"]
は BOOL int 値で構成されています。[1, 1, 1, 0] = 3 のように、int を含む配列の値を簡単に計算できるのでしょうか? 配列内のすべての値が 1:s かどうかを確認したい。