单例的实现模式/确保了访问对象的唯一性,并且使线程安全
static NSObject *object = nil;
// 在整个程序执行期间只运行一次
- (IBAction)didClickOnceButton:(id)sender {
static dispatch_once_t onceToken;
// NSObject *objc
// = nil;
// __block NSObject *object = objc;
dispatch_once(&onceToken, ^{
object = [[NSObject alloc]init];
});
NSLog(@"%@", object);
}
- 一个串行队列 (主队列)管理主线程的事务
获得主队列
dispatch_queue_t mainQueue = dispatch_get_main_queue();
在主队列执行任务
dispatch_async(mainQueue, ^{
[NSLog:@"hello"];
});```
//***************3. 通过GCD的方式创建一个新的线程来异步加载图片***************//
dispatch_queue_t queue = dispatch_queue_create("test", DISPATCH_QUEUE_CONCURRENT);
dispatch_async(queue, ^{
[self downLoadImage]; //回调 });
}
- (void)downLoadImage
{ NSURL *imageURL = [NSURL URLWithString:self.figureurl];
imageData = [NSData dataWithContentsOfURL:imageURL];
[_pathCover setAvatarImage:[UIImage imageWithData:imageData]];
}
// 返回主线程更新UI
网友评论