我正在使用 dispatch_async 块内的 ASIFormDataRequest 将一些自定义对象从应用程序发送到服务器。当我从服务器收到 OK 时,我需要将对象放入 NSMutableArray 中。但是当我尝试从块外部访问数组时,它是空的。
我的代码伪代码是这样的:
-(void)sendObjects{
NSMutableArray *sendedObjects = [NSMutableArray alloc]init];
NSMutableArray *objectsToSend = [NSMutableArray alloc]init];
for(ObjectSend *obj in objectsToSend){
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0),^{
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
[request addRequestHeader:@"Content-Type" value:@"application/json"];
[request appendPostData:[NSJSONSerialization dataWithJSONObject:sendDictWithObjects options:NSJSONWritingPrettyPrinted error:&error]];
[request startSynchronous];
NSError *requestError = [request error];
if(!requestError){
NSString *response = [request responseString];
obj.sended = YES;
[sendedObjects addObject:s];
}
});
}
NSLog(@"%i",sendedObjects.count);
}
最后 sendedObjects 数组为空。我正在使用 ARC,所以无法保留。有人可以帮助我吗?