Maison > Questions et réponses > le corps du texte
[Problème] J'utilise GCDAsyncSocket pour le traitement du Socket TCP. Si je suis dans le programme principal, je peux gérer le rappel du résultat normalement, mais je souhaite encapsuler le traitement du Socket dans une bibliothèque et terminer l'initialisation du Socket. et Les informations sont reçues et traitées, mais je constate que je ne sais pas comment déclencher le rappel ?
[Code]
Si vous faites cela directement dans le fil principal :
Initialisation
GCDAsyncSocket *_socket;
_socket = [[GCDAsyncSocket alloc] initWithDelegate:self delegateQueue:dispatch_get_main_queue()];
Connecter Connect
[self._tcpSocket connectToHost:deviceIp onPort:SERVERPORT error:&err]
A ce moment, le rappel pour une connexion réussie peut être déclenché normalement
-(void)socket:(GCDAsyncSocket *)sock didConnectToHost:(NSString *)host port:(uint16_t)port
{
NSLog(@"didConnectToHost call");
}
Mais si je mets le processus ci-dessus dans la bibliothèque et que je l'appelle via le programme principal, alors le rappel didConnectToHost ne peut pas être déclenché
Je pense que c'est parce que je ne comprends pas _socket = [[GCDAsyncSocket alloc] initWithDelegate:self déléguéQueue:dispatch_get_main_queue()]; comment dois-je gérer cet endroit ?
Merci à tous