【問題】我在使用GCDAsyncSocket進(jìn)行Tcp Socket處理,如果在主程式中,我可以正常處理結(jié)果的回調(diào),但我想將Socket的處理封裝在一個(gè)庫(kù)中,在該庫(kù)中完成Socket初始化和訊息接收處理,但卻發(fā)現(xiàn)不知該如何才能觸發(fā)到回調(diào)了?
【程式碼】
如果在主執(zhí)行緒直接這麼處理:
初始化
GCDAsyncSocket *_socket;
_socket = [[GCDAsyncSocket alloc] initWithDelegate:self delegateQueue:dispatch_get_main_queue()];
進(jìn)行連接 Connect
[self._tcpSocket connectToHost:deviceIp onPort:SERVERPORT error:&err]
此時(shí)連線成功的回呼是可以正常觸發(fā)的
-(void)socket:(GCDAsyncSocket *)sock didConnectToHost:(NSString *)host port:(uint16_t)port
{
NSLog(@"didConnectToHost call");
}
但如果我將以上流程放在庫(kù)中,透過主程式來呼叫的話,那麼didConnectToHost這個(gè)回呼就沒辦法觸發(fā)到
我認(rèn)為是我對(duì)_socket = [[GCDAsyncSocket alloc] initWithDelegate:self delegateQueue:dispatch_get_main_queue()];這個(gè)delegate和delegateQueue理解不夠,該如何處理這個(gè)地方呢?
謝謝各位
閉關(guān)修行中......