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を使用しているので、保持できません。誰かが私を助けることができますか?