2010-11-05 26 views
0

J'essaie d'utiliser la méthode ci-dessous pour envoyer des données simples via GameKit Bluetooth. Cependant, lorsque mes deux appareils se connectent avec succès et que j'appuie sur le bouton pour envoyer, il se bloque à la dernière ligne affichant "EXC_BAD_ACCESS". Une idée de ce qui ne va pas?Envoyer des données via Bluetooth en utilisant le crash GameKit

- (IBAction)sendAction:(id)sender { 
    // convert an NSString to NSData 
    NSString *str = @"Yahooooo!!"; 
    NSData *data = [str dataUsingEncoding: NSASCIIStringEncoding]; 
    [currentSession sendDataToAllPeers:data withDataMode:GKSendDataReliable error:nil]; 
} 

Répondre

1

Vous ne gérez pas correctement le nombre de rétention de la variable currentSession. En supposant que currentSession est une variable membre, lorsque vous affectez à currentSession, si elle n'est pas retournée par une méthode appelée alloc ou copy, vous devez la conserver jusqu'à ce que vous en ayez fini, et à quel moment vous devriez la libérer.

Vous devriez consulter le Guide de gestion de la mémoire de programmation:

http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/MemoryMgmt/MemoryMgmt.html