標籤: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的原因