は初めてですMKNetworkKit
が、プロジェクトに追加することができ、到達可能性の変更を処理する場合を除いて、完全に機能しています。
状況は次のとおりです。
- WiFiを無効にして、アプリを実行します。
- 到達可能性がなくても、サブクラスから
POST
を作成して、いくつかのデータを要求(使用)します。データを要求する直前に、操作はフリーズ可能として設定されます(Mugunth Kumarのドキュメントによる)。MKNetworkOperation
MKNetworkEngine
- WiFiを有効にした後、
checkAndRestoreFrozenOperations
inMKNetworkEngine
が呼び出され、保留中の操作(到達可能性なしで作成された操作)が1つあることを検出し、エンキューを試みます。 - その後、私の
onCompletion
ブロックは呼び出されません。
凍結操作+到達可能性について私が理解していないことはありMKNetworkKit
ますか?フリーズは、リクエストの開始後に到達可能性が変更される操作に対してのみ機能しますか?または、独自の到達可能性変更ブロックを実装する必要がありますか?
MKNetworkEngine
これは、操作を作成してリクエストを開始するサブクラスのコードです。無関係なコードが抑制されていることに注意してください。
NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObject:@"value" forKey:@"param"];
MKNetworkOperation *op = [self operationWithPath:MYPATH
params:params
httpMethod:@"POST"];
[op setFreezable:YES];
[op onCompletion:^(MKNetworkOperation *completedOperation) {
// ...
// Here is where I process response and send the result to my completion block
// It's called when WiFi is available, but not called otherwise.
// ...
} onError:^(NSError *error) {
// It's called when WiFi is available, but not called otherwise.
DLog(@"Some error");
}];
[self enqueueOperation:op];
return op;