я следующий код ...dispatch_async не работает все время
-(void) SetSerialNumber
{
NSLog(@"SetSerialNumber");
NSString *serialNum = textFieldSecond.text;
if (textFieldSecond.text == nil) {
[self performSelectorOnMainThread:@selector(display:) withObject:@"Please Enter the serial number" waitUntilDone:YES];
return;
}
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0), ^(void){
NSString* response;
[self performSelectorOnMainThread:@selector(display:) withObject:@"Sending Set Serial Num request" waitUntilDone:YES];
[[testApp sharedClass] SetSerNumber:serialNum];
[self performSelectorOnMainThread:@selector(display:) withObject:@"Waiting for Response..." waitUntilDone:YES];
response = [[Process sharedProcess] readAndProcessData:ACK];
[self performSelectorOnMainThread:@selector(display:) withObject:rpcresponse waitUntilDone:YES];
});
}
Метод display:
помещает сообщение на UITextView
.
Я вызываю эту функцию при нажатии кнопки. Иногда блок dispatch_async не вызывается. Его просто проваливается. Тем не менее, я вижу сообщение журнала, которое печатается каждый раз.
Может кто-нибудь может поделиться тем, что может быть причиной этого?
Если эта функция вызывается при нажатии кнопки, почему вызов первого 'performSelectorOnMainThread: withObject: waitUntilDone:'? –
ok для этого я не должен был использовать performSelectorOnMainThread: его просто для сообщения для пользователя, не более того. –