常時監視とインターバル
AppDelegate 上に用意したデータキューなどを常時監視させたい場合。
didFinishLaunchingWithOptions:内でdispatch_queue_t を用意して、裏で監視させます。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
BOOL flg = NO; // 監視フラグ
dispatch_queue_t gcd_queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(gcd_queue, ^{
for (;;) { // 条件なしのfor でぶん回し
if ( flg ) {
// フラグ = YES なら、ここを実行
}
else {
// フラグ = NO なら、10秒の間隔を置いて、再度監視
NSLog(@"Sleep Interval done...");
[NSThread sleepForTimeInterval:10.0];
}
}
});
return YES;
}