我想從服務器使用一些示例代碼檢索一些數據,如下所示。然而,它給了我不可預知的結果。我不確定這是因爲該塊在迴路中被取消分配或在內存中被覆蓋。 基本上數據不符合我期望的指數。目標C塊和For循環
-(void)retrieveSomeStuff {
for (int i = 0 ; i < items.count; i++)
{
[self retrieveDataForIndex:i
completionHandler:^(NSDictionary *data, NSError *error) {
}];
}
}
-(void) retrieveDataForIndex:i completionHandler:(void(^)(NSDictionary *,NSError*) completionHandler {
[NSURLConnection sendAsynchronousRequest:request queue:[[NSOperationQueue alloc] init] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
completionHandler(data,connectionError);
}
}
處理這種情況的最好方法是什麼?
仍然使用MMM代替ARC? – 2015-03-19 06:31:34
如果您想逐一處理,您應該只創建一個操作隊列。像靜態NSOperationQueue *隊列;如果(!隊列)隊列= [[NSOperationQueue分配]初始化]; queue.maxConcurrentCount = 1;然後sendAsynchronousRequest – Suen 2015-03-19 06:35:17
您的代碼不會執行任何內容。你想展示什麼不起作用? – newacct 2015-03-19 19:16:42