0

我正在使用 sudzc 代码调用 Web 服务方法,它有一个回调处理程序,在收到的响应上被调用。

我的问题是我有一个实用程序类,其中有一个调用服务的方法。这个方法是从后台的视图控制器类和选择器中调用的。

在实用程序方法中,我有一个用于编写服务调用逻辑的 for 循环,在此我想等待获取下一条记录,直到调用回调方法并收到结果。我已经做了一段时间,但是在调用 Web 服务后检查我设置的标志的状态,然后在回调方法中将标志设置为 false 以获取下一行,它不起作用。

通过以下代码从视图控制器调用它:

FTPHelper *ftphelper= [[FTPHelper alloc]init];
[ftphelper performSelectorInBackground:@selector(FtpFilesAsyn) withObject:nil];

现在在实用程序类中,我创建了一个独立的静态线程:

if(myThread ==nil)
{
   myThread=[[NSThread alloc] initWithTarget:self selector:@selector(SendFtpFile) object:nil];
}
[myThread start];

在选择器的方法调用中:

for (Employee *emp in empList) 
 {
   do {   
                    if(isSendingFl==YES)
                    {

//webserivce call here,

WebService *service=[WebService service];

[service SendFile:self action:@selector(FtpFileHandler:) imagefileStream:outputData filename: ftpFileName];
isSendingFl=YES;
}

   } while (isSendingFl);

}

- (void) FtpFileHandler: (id) value {

 NSString* result = (NSString*)value;
    isSendingFl=NO;
    NSLog(@"FtpFile returned the value: %@", result);

}
4

0 回答 0