【发布时间】:2014-09-11 22:03:18
【问题描述】:
这是我的要求。需要在辅助线程上调用 Web 服务以将人员数据作为字典数组发送。 ({名称:person1, 地址:印度 照片:路径1 }; {名称:person2, 地址:印度 照片:路径2 } ) 在这张照片中,我们有其他网络服务,我们将图像上传到该服务并获得响应路径。
我做了什么。 编写了一个函数并在辅助线程上调用它并启动了一个活动指示器。 在函数内部,一个 for 循环正在制作这个字典。它工作正常。 但是当我在其中同步上传图像时,活动指示器停止。如果我异步执行此操作,当我获得路径响应时,我的主 for 循环已经消失,并且我没有字典对象来添加路径。
-(BOOL)callSynchWebService
{
__block BOOL validateFlag=NO;
MBProgressHUD * progressHud = [[MBProgressHUD alloc] initWithView:self.view];
InterNetConnectionService *netService=[[InterNetConnectionService alloc]init];
if(![netService checkFornetConnectionWithStatus] )
{
[self.view addSubview:progressHud];
progressHud.mode = MBProgressHUDModeIndeterminate;
progressHud.labelText = @"Loading";
[progressHud show:YES];
for (Person *p in array_persons)
{
NSMutableDictionary *dict=[[NSMutableDictionary alloc]init];
[dict setObject:p.name forKey:@"Name"];
[dict setObject:p.address forKey:@"Address"];
NSString *photoResult=[self sendingPhototoServer:p.image];
[dict setObject:photoResult forKey:@"Photo"];
}
}
然后使用 ASIHTTP 发送这个数组。
请您帮我在这个 for 循环中异步上传该图像并将其响应存储在字典中。
谢谢。
【问题讨论】:
标签: ios multithreading web-services