常時監視とインターバル
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; }