复制代码
@implementation YYViewController
- (void)viewDidLoad
{
[super viewDidLoad];
//NSOperation:抽象类,不具备封装功能
//创建操作对象,封装要执行的任务
//NSInvocationOperation 封装操作
NSInvocationOperation *operation=[[NSInvocationOperation alloc]initWithTarget:self selector:@selector(test) object:nil];
//执行操作
[operation start];
}
-(void)test
{
NSLog(@"--test--%@--",[NSThread currentThread]);
}
@end
打印查看:
注意:操作对象默认在主线程中执行,只有添加到队列中才会开启新的线程。即默认情况下,如果操作没有放到队列中queue中,都是同步执行。只有将NSOperation放到一个NSOperationQueue中,才会异步执行操作
2.NSBlockOperation子类
创建对象和添加操作:
复制代码//创建NSBlockOperation操作对象
NSBlockOperation *operation=[NSBlockOperation blockOperationWithBlock:^{
//......
}];
//添加操作
[operation addExecutionBlock:^{
//....
}];
代码示例:
代码1:
复制代码//
// YYViewController.m
// 02-NSTherad基本2
//
// Created by 孔医己 on 14-6-25.
// Copyright (c) 2014年 itcast. All rights reserved.
//











