子執行緒執行完延時操作後返回主執行緒,這就是通訊
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { // 在子執行緒中呼叫download方法下載圖片 [self performSelectorInBackground:@selector(download) withObject:nil]; } -(void)download { //1.根據URL下載圖片 //從網路中下載圖片 NSURL *urlstr=[NSURL URLWithString:@"http://cdn.duitang.com/uploads/item/201409/17/20140917231336_URiHE.jpeg"]; NSLog(@"touch down "); //把圖片轉換為二進位制的資料 NSData *data=[NSData dataWithContentsOfURL:urlstr];//這一行操作會比較耗時 //把資料轉換成圖片 UIImage *image=[UIImage imageWithData:data]; //2.回到主執行緒中設定圖片 //第一種方式 // [self performSelectorOnMainThread:@selector(settingImage:) withObject:image waitUntilDone:NO]; //第二種方式 [self.iconView performSelector:@selector(setImage:) onThread:[NSThread mainThread] withObject:image waitUntilDone:NO]; } //設定顯示圖片 -(void)settingImage:(UIImage *)image { self.iconView.image=image; }