[英]Get data from AppDelegate to ViewController in iOS
我有xcode的ios項目,我需要從Appdelegate獲取設備令牌以查看控制器,這是App委托的代碼:
-(void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{
[[NSUserDefaults standardUserDefaults] setObject:deviceToken forKey:@"token"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
然后,在視圖控制器中:
[super viewDidLoad];
[[NSUserDefaults standardUserDefaults] objectForKey:@"token"];
當我第一次嘗試它時,它正在工作,但是下一次應用程序崩潰了...當我從視圖控制器中刪除該代碼時,它可以工作,所以在那里一定是錯誤的...您能幫我嗎?
首先,從手機/模擬器中刪除您的應用程序 。
因為NSUserDefaults可能為您的密鑰保存了錯誤的數據。
然后用這些替換您的代碼,
-(void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{
if(deviceToken){
[[NSUserDefaults standardUserDefaults] setObject:deviceToken forKey:@"token"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
}
在viewDidLoad中,
- (void)viewDidLoad
{
[super viewDidLoad];
id token = [[NSUserDefaults standardUserDefaults] objectForKey:@"token"];
if(token){
NSLog(@"I have got the token");
}else NSLog(@"no token");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.