(工作經驗總結一二)隊列--多個main的原因

來源:互聯網
上載者:User

標籤:blog   http   io   使用   java   ar   art   sp   代碼   

1,項目建立最好有一個自己的繼承於UIViewController的類,並且其他控制器繼承這個控制器,靈活性較大,例如:

要給項目每個頁面添加或使用者操作軌跡記錄等,這樣就省去了到每個頁面添加的麻煩,在這個父類中寫邏輯即可!

2,不用所有的UI元素都在控制器裡self.view addsubview,寫多了確實很暈,邏輯與試圖參合!自訂view類,加到控制器裡解決.

 

3, 執行網路請求非同步任務過多會耗費資源,最好用到隊列   參考:http://blog.csdn.net/totogo2010/article/details/8013316
  這裡介紹專業級項目中用到的方法
  結構:
  1個繼承NSOperation的類   MyOperation
  1個繼承NSObject的管理類,單例 TaskManager
 
 
 NSOperation就和java.lang.Runnable介面很相似。和Java的Runnable一樣,NSOperation也是設計用來擴充的,只需繼承重寫NSOperation的一個方法main。相當與java 中Runnalbe的Run方法。然後把NSOperation子類的對象放入NSOperationQueue隊列中,該隊列就會啟動並開始處理它。

//執行任務的類

@interface MyOperation : NSOperation

@implementation MyOperation

//重載父類方法,隊列自動執行main
- (void)main {
    @autoreleasepool {
        @try {
            //主要代碼
            NSLog(@"+++++++++++++++++++++++++++++++++++++============================");
        }@catch (NSException *e) {
            //異常處理
        }@finally {
            //一般不寫代碼
        }
    }
}
@end

////////////////////////////管理執行任務的類

#import "MyOperation.h"

//這裡簡單測試,不寫單例
@interface TaskManager : NSObject
{
    //建立一個任務隊列
    NSOperationQueue *operationQueue;
}

- (void)startOperation;

@end

- (instancetype)init
{
    self = [super init];
    if (self) {
        operationQueue = [[NSOperationQueue alloc]init];
        //同時執行的任務數,主要就是為了它
        operationQueue.maxConcurrentOperationCount = 1;
    }
    return self;
}

- (void)startOperation
{
    MyOperation* op = [[MyOperation alloc]init];
    [operationQueue addOperation:op];
}

//使用處調用

 TaskManager *manager = [[TaskManager alloc]init];
    [manager startOperation];

(工作經驗總結一二)隊列--多個main的原因

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.