je peux suivre la plupart de l'échantillon de WiTap d'Apple, mais je suis en quelque sorte perplexe sur ce bit dans la méthode d'envoi:Bonjour réseau Aide sur iPhone échantillon WiTap
- (void) send:(const uint8_t)message
{
if (_outStream && [_outStream hasSpaceAvailable])
if([_outStream write:(const uint8_t *)&message maxLength:sizeof(const uint8_t)] == -1)
[self _showAlert:@"Failed sending data to peer"];
}
- (void) activateView:(TapView*)view
{
NSLog(@"ACTIVATE TAG: %d", [view tag]);
//[self send:[view tag] | 0x80];
[self send:[view tag]];
}
- (void) deactivateView:(TapView*)view
{
NSLog(@"DEACTIVATE TAG: %d", [view tag]);
//[self send:[view tag] & 0x7f];
[self send:[view tag]];
}
Notez que j'ai changé l'envoi: l'argument juste l'étiquette des vues, numérotées de 1 à 9. À l'origine, le code comportait les ajustements au niveau des bits AND et OR.
POURQUOI?
Je reçois le fait que la méthode d'envoi a besoin d'un uint8_t
, mais est-ce la raison pour laquelle le bitwise est là? Pour transformer un NSInteger en unint8_t?
Le code ne fonctionne pas avec mes modifications ci-dessus. Il se connectera correctement et visuellement le client fonctionnera correctement, mais les messages ne sont pas envoyés/reçus correctement du client au client. Est-ce que quelqu'un peut expliquer en petits mots ce que fait le bitwise? Ou ai-je raison?
Merci! C'est ma première question à SO donc s'il vous plaît soyez gentil.
merci pour la réponse. Je suis encore un peu perplexe. Trouver?
Fondamentalement, pourquoi?
Est-ce juste un moyen geek de transmettre un identifiant? Chacune de ces vues a un tag #, pourquoi ne pas simplement passer cela, et basculer l'état (haut/bas) de la classe de vue?
Est-ce juste un cas de "c'est comme ça que la personne qui l'a écrit l'a fait", ou est-ce que je manque une pièce cruciale du puzzle en ce sens que je devrais aussi structurer mon code. Je voudrais juste passer un tag # et ensuite avoir cette étiquette décider quoi faire dans une fonction clairement lisible comme toggleUpOrDownState
ou quelque chose. Ce truc au niveau des bits me rend toujours stupide je suppose, à moins que ce soit nécessaire, etc. Ensuite, je me sens stupide, mais parvient à embrouiller de toute façon de toute façon. :)