我想在應用程序中保存一些數據在NSUserDefaults中:openURL:sourceApplication:annotation:UIApplicationDelegate中的方法,然後在viewDidLoad中讀取這些數據:在我的主視圖控制器中。但是,數據總是空的!NSUserDefaults爲空
如果我將相同的數據保存在viewDidLoad中:在主視圖控制器中,它立即可見且可恢復,但不是在將它保存在UIApplicationDelegate中時。
這種行爲的任何想法?謝謝。
下面是代碼:
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
// Save my data
[[NSUserDefaults standardUserDefaults] setURL:url forKey:@"url"];
[[NSUserDefaults standardUserDefaults] synchronize];
return YES;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// It's always false !!
if ([[NSUserDefaults standardUserDefaults] URLforKey:@"url"] != nil){
// Do something with url
}
}
檢查' - (BOOL)申請:(UIApplication的*)應用程序的OpenURL:(NSURL *)網址sourceApplication:(的NSString *)sourceApplication註釋:(ID)註釋 '委託調用或沒有。只有在使用URL架構啓動時,該委託纔會被調用。 – Bharath
@Till。不,我已經評論過這個問題。我在問他實施的代表是否正在調用。 – Bharath
是否曾經援引過這種儲蓄?添加一個NSLog。 – Till