我應該在哪裏放置一個Date實例,以及如何處理調用它以獲取當前日期?我應該使用日期實例創建一個單例嗎?我應該在AppDelegate的函數之一中調用這個實例來更新應用程序未被使用時的當前日期嗎? 「如果應用程序在整個運行期間使用它,應該如何處理當前日期?
0
A
回答
1
你的問題的部分沒有什麼意義:
「我應該在哪裏放一個日期實例,我應該怎麼句柄調用它,以獲得當前的日期?」
日期實例記錄一個固定的時間。代碼
let date = Date()
將在它被調用的時刻記錄當前日期,而不會改變。如果您的程序明天仍在運行,那麼該日期現在將非常「過時」。
您應該在任何需要當前日期的時候使用表達式Date()
。
+0
我不知道你可以使用Date()這樣的。謝謝! –
1
」我應該在哪裏放一個Date實例,我應該如何處理它以便獲取當前日期?「 在您當前的View Controller中已經足夠了。只要VC還活着,它就對你的Date對象有很強的參考。
「我應該用日期實例做單身嗎?」 號如果你需要保持日期相關,你需要觸發一個計時器(假設1分鐘 所以它不會打擾太多),將保持更新UI
「我應該把這個例如在一個日期AppDelegate的函數爲了更新應用程序未被使用時的當前日期?「 不,您可以收到通知,並通過它們知道何時將計時器向上或向下。 見代碼
class ViewController: UIViewController{
// label to hold the date
@IBOutlet var dateLabel: UILabel!
// timer to keep it updated
var fetchTimer: Timer!
override func viewDidLoad()
{
super.viewDidLoad()
// set date immediately (dont wait for timer)
viewDidEnterForeground()
// follow Foreground so when we re-enter, timer will launch again
NotificationCenter.default.addObserver(self,
selector: #selector(ViewController.viewDidEnterForeground),
name:NSNotification.Name.UIApplicationWillEnterForeground,
object: nil)
// follow background for invalidating timer
NotificationCenter.default.addObserver(self,
selector: #selector(ViewController.viewDidEnterBackground),
name:NSNotification.Name.UIApplicationDidEnterBackground,
object: nil)
}
// on each entry - set date and fire timer
func viewDidEnterForeground()
{
setDate()
fetchTimer = Timer.scheduledTimer(timeInterval: 60.0,
target: self,
selector: #selector(timerFunc),
userInfo: nil,
repeats: true)
}
func viewDidEnterBackground()
{
fetchTimer.invalidate()
}
func timerFunc()
{
setDate()
}
func setDate()
{
let date = Date()
let formatter = DateFormatter()
formatter.dateFormat = "dd.MM.yyyy"
// "22.04.2017"
let dateFormatString = formatter.string(from: date)
DispatchQueue.main.async
{
self.dateLabel.text = dateFormatString
}
}
deinit
{
NotificationCenter.default.removeObserver(self, name:NSNotification.Name.UIApplicationWillEnterForeground, object: nil)
NotificationCenter.default.removeObserver(self, name:NSNotification.Name.UIApplicationDidEnterBackground, object: nil)
}
}
相關問題
- 1. 應用程序應該如何處理延期的SKPaymentTransaction?
- 2. 在Android應用程序中顯示當前時間和日期
- 3. 如何顯示當前日期? Android應用程序
- 4. 如何在node.js運行的應用程序中獲取日期?
- 5. 如何爲整個應用程序設置日期模式(日期格式)?
- 6. 如何保存上次應用程序運行時的日期?
- 7. 當我的應用程序未運行時,如何處理FCM?
- 8. 我的應用程序如何知道當前日期是否爲當前實際日期?
- 9. 如何比較日期值在dataGrid中使用當前日期?
- 10. 上次應用程序運行的存儲日期/時間
- 11. 如何在jsdatepicker當前日期之前禁用日期
- 12. 如何使用CommandLineJobRunner運行Spring批處理應用程序
- 13. 在Mongo和Nodejs的網絡應用程序中處理日期的日期
- 14. 如果我想創建鬧鐘應用程序,我該如何指定日期?
- 15. 如何停止日期選擇器對話框日期以設置以前的日期。它應該只允許以上系統當前日期日期
- 16. 如何在iPhone應用程序中設置當前日期的Dateformat?
- 17. 如何在DatePickerDialog上的當前日期和前7天之間啓用日期?
- 18. 如何調試時間依賴的應用程序? (使用當前日期時間變量而不是DateTime.Now)
- 19. 我們應該如何處理使用nservicebus的長時間運行過程
- 20. 如何從當前的應用程序運行獨立的應用程序?
- 21. 如何處理從不同地理位置使用的應用程序中的日期和時間?
- 22. 我應該如何處理Ruby on Rails中的估計日期?
- 23. 如何使批處理文件運行python應用程序
- 24. MySQL:如何使用當前日期獲取「本週的日期」?
- 25. 在應用程序錯誤處理期間訪問模型
- 26. Android:日期選擇器不應該接受當前日期和未來日期
- 27. 如果應用程序已在運行,如何處理推送通知?
- 28. 如何讓應用程序無限期地在後臺運行?
- 29. 如何運行java應用程序,如果它沒有JVM
- 30. 如何在應用程序執行期間覆蓋logging.properties?
保留日期實例的目的是什麼?記錄某種最後一個動作? –