私は RestKit (私が抱えている問題に関連する場合と関連しない場合があります) を利用するアプリで作業しています。このアプリでは、特定の間隔の後に数秒間ウェイクアップし、サーバーに対して managedObjectRequestOperation を作成します。これは一日中完全に機能しますが、通常、デバイスが充電されている午前1時から午前7時の間、数時間使用されていないため、リクエストが送信されますが、応答は登録されません.
リクエストがタイムアウトしたり、その他の同様のエラーが発生したりしているようには見えません。私のログには、リクエストを送信していることが記録されていますが、何も起こらず、応答もエラーもありません... 電話はある種の昏睡状態になりますか? -モードオーバーナイト? 私のデバイスは、iOS7 を実行している iPhone 5 です。
編集:
私が基本的に行っていたのは、サーバーにリクエストを送信し、その結果でコア データを更新することです。これにより、tableView が更新されます。私の元の実装では、基本的に NSNotification をアプリに送信しました。これは、テーブルビューにリクエストを送信し、結果に従って更新するように指示します。
-(void)application:(UIApplication *)application performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
[[NSNotificationCenter defaultCenter] postNotificationName:@"RefreshData" object:nil];
completionHandler(UIBackgroundFetchResultNewData);
}
実際にこれを行う必要がある場合:
-(void)application:(UIApplication *)application performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
[RefreshDataWithCompletionHandler:(void (^)(id result))completionHandler {
// handle updating the data here based on the result of the request to the server
......
// then call the completion handler here
completionHandler(UIBackgroundFetchResultNewData);
}];
}
それは正しい手順をより正確に表していますか?