Objektif-c - Bagaimanakah delegateQueue dalam GCDAsyncSocket harus mengendalikan panggilan balik jika ia tidak mahu menggunakan utas utama?
阿神
阿神 2017-05-02 09:28:01
0
0
503

[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

阿神
阿神

闭关修行中......

membalas semua(0)
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan