Three delayed execution methods and three delayed execution methods
1-(void) viewDidLoad 2 {3 [super viewDidLoad]; 4 // Do any additional setup after loading the view, typically from a nib. 5} 6 7-(void) touchesBegan :( NSSet *) touches withEvent :( UIEvent *) event 8 {9 NSLog (@ "----- touchesBegan1 -----"); 10 11 12 13 NSLog (@ "----- touchesBegan2 -----"); 14} 15 16-(void) download :( NSString *) url17 {18 NSLog (@ "download ------ % @ --- % @", url, [NSThread currentThread]); 19} 20 21-(void) delay322 {23 // 3 seconds later return to the Code 24 in the main thread execution block // dispatch_queue_t queue = queue (); 25 // dispatch_after (dispatch_time (DISPATCH_TIME_NOW, (int64_t) (3 * NSEC_PER_SEC), queue, ^ {26 // NSLog (@ "------ task ------ % @", [NSThread currentThread]); 27 //}); 28 29 // 3 seconds later, the code 30 dispatch_queue_t queue = dispatch_get_global_queue (queue, 0); 31 dispatch_after (dispatch_time (DISPATCH_TIME_NOW, (int64_t) (3 * NSEC_PER_SEC), queue, ^ {32 NSLog (@ "------ task ------ % @", [NSThread currentThread]); 33 }); 34} 35 36-(void) delay237 {38 // once a delayed task is customized, the current thread 39 [self defined mselector: @ selector (download :) withObject: @ "http://555.jpg" afterDelay: 3]; 40} 41 42-(void) delay143 {44 // do not use sleep for delayed execution; disadvantage: getting stuck with the current thread 45 [NSThread sleepForTimeInterval: 3]; 46 NSLog (@ "----- download image -----"); 47}