我通过didRegisterForRemoteNotificationsWithDeviceToken
方法获得了设备令牌。我想在另一种方法中使用设备令牌。我用这种方式试了一下,
在didRegisterForRemoteNotificationsWithDeviceToken
方法中:
str = [NSString stringWithFormat:@"%@",deviceToken];
// str is the NSString which is declared in the appDelegate.h file as global variable
在didReceiveRemoteNotification
方法中:
NSLog(@"Device Token : %@",str);
当我这样做时,Device Token
将返回“nosniff”。
如何将此设备令牌存储在全局变量中,并在其他类或其他方法中使用它。
答案 0 :(得分:2)
在你的app委托类中定义方法+ (CustomAppDelegate *)sharedAppDelegate
,其实现应如下所示:
+ (CustomAppDelegate *)sharedAppDelegate
{
return (CustomAppDelegate *) [UIApplication sharedApplication].delegate;
}
其中CustomAppDelegate
是您的应用委托类的名称。
在方法中,您需要获取str
变量的值,您应该输入以下内容:
NSString *token = [[CustomAppDelegate sharedAppDelegate] str];
其中CustomAppDelegate
是您的app委托类的名称,str
是存储设备令牌的合成属性(或方法名称)。
在致电sharedAppDelegate
之前,请不要忘记import "CustomAppDelegate.h"
答案 1 :(得分:2)
您可以将设备令牌添加到NSUserDefaults
字典中,如下所示:
-(void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken
{
[[NSUserDefaults standardUserDefaults] setObject:deviceToken forKey:@"deviceToken"];
然后可以通过其他方法访问它:
NSString *deviceToken = [[NSUserDefaults standardUserDefaults] objectForKey:@"deviceToken"];