我应该在哪里放置一个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?
保留日期实例的目的是什么?记录某种最后一个动作? –