iPhone等待回拨方法

时间:2012-01-24 06:08:15

标签: iphone web-services asynccallback

我使用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);

}

0 个答案:

没有答案