DocumentsDirectoryに文字列データが入力されたJSONファイルがあります。アプリケーションのユーザーインターフェイスには、UIButtonがあります。ボタンを押すと、新しい文字列がJSONファイルに追加されます。
今、私はこれらの文字列を(JSONファイルから)swiftを使用してサーバーに送信するのに役立つiOSサービスを探しています。そして、このサービスは私のコードから完全に独立している必要があります。重要なのは、UIButtonを押すと、最初のステップは文字列がJSONファイルに保存され、インターネットが利用可能な場合はサービスがこの文字列を取得してサーバーに送信することです。
文字列が正常に送信されたら、JSONファイルから削除する必要があります。このサービスは、JSONファイルに文字列が保存されているかどうかを30秒ごとに追跡し、サーバーに送信する必要があります。
グーグルでバックグラウンドフェッチを見つけましたが、performFetchWithCompletionHandler
関数が自動的にトリガーされ、iOSがいつトリガーするかわかりません。この種のサービスを30秒ごとに自分でトリガーしたいと思います。
AppleのiOS向けアプリプログラミングガイドのバックグラウンド実行の部分を確認してください。
UIApplication
でバックグラウンドタスクを開始および終了するためのインターフェイスを提供しますUIBackgroundTaskIdentifier
。
の最上位でAppDelegate
、クラスレベルのタスク識別子を作成します。
var backgroundTask = UIBackgroundTaskInvalid
ここで、完了したい操作を使用してタスクを作成し、タスクが期限切れになる前に完了しなかったエラーケースを実装します。
backgroundTask = application.beginBackgroundTaskWithName("MyBackgroundTask") {
// This expirationHandler is called when your task expired
// Cleanup the task here, remove objects from memory, etc
application.endBackgroundTask(self.backgroundTask)
self.backgroundTask = UIBackgroundTaskInvalid
}
// Implement the operation of your task as background task
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) {
// Begin your upload and clean up JSON
// NSURLSession, AlamoFire, etc
// On completion, end your task
application.endBackgroundTask(self.backgroundTask)
self.backgroundTask = UIBackgroundTaskInvalid
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加