我想从服务器使用一些示例代码检索一些数据,如下所示。然而,它给了我不可预知的结果。我不确定这是因为该块在回路中被取消分配或在内存中被覆盖。 基本上数据不符合我期望的指数。目标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