我有一個要花費很多時間和資源,一些圖像處理,所以我用NSOperation
+ NSOperatioQueue
+委託回調。和所有的工作。的NSOperation與completition塊
現在我想使用塊,因爲它在桌面視圖中的使用非常優雅和簡單。
什麼,我需要做的是一樣AFJSONRequestOperation
例如:
NSURL *url = [NSURL URLWithString:@"url"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {
NSLog(@"App.net Global Stream: %@", JSON);
} failure:nil];
[operation start];
在這個例子中我沒有看到任何operationQueue
!我怎麼能這樣做?
[ImageManagerOperation modifyImage:(UIImage*)image completitionBlock:(void (^)(UIImage *modifiedImage))complete];
其中ImageManagerOperation是一個NSOperation。
我知道我可以設置完成塊的,但我仍然需要在隊列中添加操作。
我想盡量減少我的代碼中的行號(如果可能:))。
謝謝你,所以最後我要創建我自己的隊列,對於我的tableView這樣,這將是很大的努力,所以我做到這一點與GCD,並且做工精細,真的讓我很 – 2013-03-16 23:37:41
謝謝你,所以最後,我必須創建自己的隊列,爲了適應tableView需要付出很大的努力,所以我使用GCD來做這件事,並且工作正常(我認爲GCD使用正確的操作?)。你回答我的問題,所以我接受它謝謝:) – 2013-03-16 23:52:34
不,NSOperation使用GCD而不是其他方式。這聽起來像你需要一個隊列,所以你可以限制你從你的表格視圖做的工作量。我假設你正在爲每個單元格工作而滾動?如果有人滾動很多,你可能會開始太多的工作。使用隊列有助於限制這一點,並讓您取消可能已爲單元啓動的任務,但由於用戶已滾動而不再需要。有一個WWDC(我認爲2012)會議深入討論了這一點。如果這也是你正在做的事情,你應該看這個視頻。 – 2013-03-19 13:44:35