我是新來MKNetworkKit
,但我已經能夠將其添加到我的項目,這是完全與可達性變化打交道時,除了工作。MKNetworkKit操作不恢復/完成時可達改變
這裏的情況是:
- 我禁用WiFi和運行應用程序。
- 即使沒有可達性,我要求由我
MKNetworkEngine
子類創建MKNetworkOperation
(使用POST
)的一些數據。在請求數據之前,操作被設置爲可凍結(根據Mugunth Kumar's doc)。 - 在
MKNetworkEngine
啓用WiFi,checkAndRestoreFrozenOperations
之後被調用,它檢測有一個掛起的操作(不可達性創建的),它試圖排隊。 - 在那之後,我的
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;
你設立一臺主機引擎?如果您查看凍結操作的處理方式,除非爲引擎定義了主機,否則它們不起作用。 –
@KenWoo是的。我的引擎子類中的init方法調用'[super initWithHostName:]'。 –
msoler
@msoler你有沒有得到它的工作?我有類似的問題 – alandalusi