iOS 多線程學習筆記 —— NSOperation

本文複製、參考自文章:iOS多線程編程之NSOperation和NSOperationQueue的使用 ,主要爲了增強我的對知識的理解和記憶,不作他用。原做者聲明:編程

著做權聲明:本文由http://blog.csdn.net/totogo2010/原創,歡迎轉載分享。請尊重做者勞動,轉載時保留該聲明和做者博客連接,謝謝!多線程

這裏對原做者的辛勤工做表示感謝!異步

1. 使用抽象的 NSOperation 的方式有兩種:

(1)用庫定義好的子類: NSInvocationOperation 和 NSBlockOperation。spa

(2)自定義類,繼承自NSOperation。和Java的Runnable同樣,NSOperation也是設計用來擴展的,只需重寫NSOperation的main方法,至關於Java中的Run方法。而後把NSOperation子類的對象放到NSOperationQueue隊列中,該隊列就會啓用並開始處理它。.net

2. 使用NSInvocationOperation的例子:異步加載圖片

 (1) 在ViewController.m中添加多線程調用:線程

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    NSInvocationOperation* operation = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(downloadImage:) object:kURL];
    NSOperationQueue* queue = [[NSOperationQueue alloc]init];
    [queue addOperation:operation];
}

其餘與NSThread示例中的一致。設計

3. 使用自定義類的例子

將2.中的NSInvocationOperation類替換爲自定義的NSOperation子類,在子類中的main方法中實現downloadImage方法便可。 code

相關文章
相關標籤/搜索