objective-c - Comment déléguéQueue dans GCDAsyncSocket doit-il gérer les rappels s'il ne souhaite pas utiliser le thread principal ?
阿神
阿神 2017-05-02 09:28:01
0
0
502

[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

阿神
阿神

闭关修行中......

répondre à tous(0)
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal