5 分ごとに呼び出されるバックグラウンド メソッドがあります。
そのメソッドはNSURLConnection
、データを Web サービスに送信するために使用します。
その方法には、次のコードがあります。
...
conn = [[NSURLConnection alloc] initWithRequest:req delegate:self startImmediately:NO];
NSPort* port = [NSPort port];
NSRunLoop* rl = [NSRunLoop currentRunLoop];
[rl addPort:port forMode:NSDefaultRunLoopMode];
[conn scheduleInRunLoop:rl forMode:NSDefaultRunLoopMode];
[conn start];
[rl run];
...
バックグラウンドで WS を呼び出すので、このデリゲート メソッド (didReceiveData、didFail など) がないと呼び出されないため、このコードを使用します。http://www.cocoaintheshell.com/2011/04/nsurlconnection-synchronous-asynchronous/
からこのトリックを取得します
。問題は、5 分が経過し、このメソッドが初めて呼び出されたときに次の 5 分間待機しないことです。もう一度呼び出しますが、ほぼ毎秒 Web サービスを呼び出します。
この NSRunLoop を何らかの形で無効にする必要があると思いますが、方法と場所がわかりませんか?