2017-03-18 96 views
0

我最小化托盤我的應用程序,然後更改時區,然後打開應用程序NSTimeZone返回時區的舊值。 如果我最小化托盤並再次打開時區返回新值。我該如何解決它?爲什麼更改後時區NSTimeZone返回舊時區

[[NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(reloadVC) 
               name:UIApplicationWillEnterForegroundNotification 
               object:nil]; 
-(void) reloadVC{ 
    NSTimeZone *currentTimeZone = [NSTimeZone localTimeZone]; 
    NSLog(@"%@", currentTimeZone); 
} 

回答

0

如果你打算在進入前景要做的就是抓住時區的變化,觀察此通知,而不是:NSSystem​Time​Zone​Did​Change​Notification

該通知排隊時你的應用程序進入前景進行處理,所以你不需要一個單獨的觀察者來輸入前景。

[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(reloadVC) 
              name:NSSystem​Time​Zone​Did​Change​Notification 
              object:nil]; 
-(void) reloadVC{ 
    NSTimeZone *currentTimeZone = [NSTimeZone localTimeZone]; 
    NSLog(@"%@", currentTimeZone); 
}