Я вызываю метод веб-службы с использованием кода sudzc, и у него есть обработчик обратного вызова, который вызывается при получении ответа.
Моя проблема в том, что у меня есть служебный класс, в котором есть метод, который вызываетсервис.Этот метод вызывается из класса контроллера представления и селектора в фоновом режиме.
В служебном методе у меня есть цикл for, в котором записана логика вызова службы, в этом я хочу подождать, чтобы получить следующую запись доЯ получаю метод обратного вызова и результат получен.Я поставил do некоторое время, но он не работает, чтобы проверить состояние флага, который я установил после вызова веб-службы, а затем установить флаг 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);
}