cari

Rumah  >  Soal Jawab  >  teks badan

Objektif-c - Bagaimanakah delegateQueue dalam GCDAsyncSocket harus mengendalikan panggilan balik jika ia tidak mahu menggunakan utas utama?

[Masalah] Saya menggunakan GCDAsyncSocket untuk pemprosesan Soket Tcp Jika saya berada dalam program utama, saya boleh mengendalikan panggilan balik hasil seperti biasa, tetapi saya mahu merangkum pemprosesan Soket dalam perpustakaan dan melengkapkan pengamulaan Soket. dan Maklumat diterima dan diproses, tetapi saya mendapati bahawa saya tidak tahu bagaimana untuk mencetuskan panggilan balik?

[Kod]
Jika anda melakukan ini terus dalam urutan utama:

Permulaan

GCDAsyncSocket *_socket;
_socket = [[GCDAsyncSocket alloc] initWithDelegate:self delegateQueue:dispatch_get_main_queue()];

Sambung Sambung

[self._tcpSocket connectToHost:deviceIp onPort:SERVERPORT error:&err]

Pada masa ini, panggilan balik untuk sambungan yang berjaya boleh dicetuskan seperti biasa

-(void)socket:(GCDAsyncSocket *)sock didConnectToHost:(NSString *)host port:(uint16_t)port
{
    NSLog(@"didConnectToHost call");
}

Tetapi jika saya meletakkan proses di atas dalam perpustakaan dan memanggilnya melalui program utama, maka panggilan balik didConnectToHost tidak boleh dicetuskan

Saya rasa ini kerana saya tidak faham _socket = [[GCDAsyncSocket alloc] initWithDelegate:self delegateQueue:dispatch_get_main_queue()];

Terima kasih semua

阿神阿神2832 hari yang lalu515

membalas semua(0)saya akan balas

Tiada jawapan
  • Batalbalas