Hi there, I've a question about the dispatch_timer function. I try to make a strobe flash on my iPhone app and for that i used an NSTimer but a friend of mine say that it's better to use dispatch function. So i was looking and try to implement something. I explain my code before post anything : I have a UISlider in another view (settings.strobeValue) and get his value for settings the timer. And i called changeStrobeState in another function who wll be called by dispatch function. But when i hit the button on my view and send my dispatch code, no work at all... So there is the code :
-(void)changeStrobeState { if (NO == [[NSUserDefaults standardUserDefaults] boolForKey:@"buttonStrobeState"]) { [deviceCapture lockForConfiguration:nil]; [deviceCapture setTorchMode:AVCaptureTorchModeOff]; [deviceCapture unlockForConfiguration]; } else { [deviceCapture lockForConfiguration:nil]; [deviceCapture setTorchMode:AVCaptureTorchModeOn]; [deviceCapture unlockForConfiguration]; } BOOL state = [[NSUserDefaults standardUserDefaults] boolForKey:@"buttonStrobeState"]; [[NSUserDefaults standardUserDefaults] setBool:!state forKey:@"buttonStrobeState"]; } - (dispatch_source_t)setupStrobeTimer { static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); _strobeTimer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, queue); if (_strobeTimer) { dispatch_source_set_timer(_strobeTimer, dispatch_walltime(DISPATCH_TIME_NOW, settings.strobeValue * NSEC_PER_SEC), settings.strobeValue * NSEC_PER_SEC, 6ull * NSEC_PER_SEC); __block ViewController *blockSelf = self; dispatch_source_set_event_handler(_strobeTimer, ^{ [blockSelf changeStrobeState]; }); } }); return _strobeTimer; } Can you help me ? Thanks for reading and sorry 'cause my english is not perfect and it's actually 3 AM here :) Cheers, Vavelin Kevin Twitter | Blog | Viadeo _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com