Enregistrement de DeviceToken pour une utilisation ultérieure dans les services Apple Push Notification
Dans mon iPhone, je suis le dispositif de jeton d'Apple, je suis l'affectation d'un bien public à l'intérieur du Délégué de fichier comme indiqué ci-dessous:
- (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken
{
self.dToken = [[NSString alloc] initWithData:deviceToken encoding:NSUTF8StringEncoding];
}
La dToken propriété est déclarée comme indiqué ci-dessous:
NSString *dToken;
@property (nonatomic,retain) NSString *dToken;
Mais quand j'essaie de récupérer l'appareil jeton à partir d'un autre fichier j'obtiens la valeur null.
+(NSString *) getDeviceToken
{
NSString *deviceToken = [(MyAppDelegate *)[[UIApplication sharedApplication] delegate] dToken];
NSLog(@" getDeviceToken = %@",deviceToken); //This prints NULL
return deviceToken;
}
Ce que je fais mal?
source d'informationauteur azamsharp | 2011-09-29
Vous devez vous connecter pour publier un commentaire.
Je vous propose de convertir jeton de chaîne de cette façon:
Mise à JOUR:
Comme beaucoup de personnes mentionné, il est préférable d'utiliser l'approche suivante pour convertir
NSData *
àNSString *
:De la discussion à Meilleure façon de sérialiser un NSData dans un hexadeximal chaînevoici une meilleure façon de le faire. C'est plus long, mais votre code sera l'avenir si Apple change la manière de NSData émettent débogueur descriptions.
Étendre NSData comme suit:
Je sais que c'est une vieille question et que cela peut être de nouvelles informations qui viennent depuis mais j'aimerais juste souligner quelque chose à toutes les personnes qui sont en prétendant que l'utilisation de la méthode de description est une très mauvaise idée. Dans la plupart des cas, vous seriez tout à fait exact. La description de la propriété est généralement utilisé à des fins de débogage, mais pour le NSData la classe, c'est précisément définie comme le retour d'un représentation hexadécimale des récepteurs contenu qui est exactement ce qui est nécessaire ici. Depuis Apple a mis à leur documentation, je pense que vous êtes assez sûr aussi loin qu'eux de le changer.
Ce qui peut être trouvé dans la NSData Classe de Référence ici: https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSData_Class/Reference/Reference.html