我应该在哪里放置一个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. 我应该如何处理日期?
- 2. 应用程序应该如何处理延期的SKPaymentTransaction?
- 3. 如何在Web应用程序中处理日期?
- 4. 在Android应用程序中显示当前时间和日期
- 5. 如何显示当前日期? Android应用程序
- 6. 如何在node.js运行的应用程序中获取日期?
- 7. 如何为整个应用程序设置日期模式(日期格式)?
- 8. 如何保存上次应用程序运行时的日期?
- 9. 如何在打开应用程序后访问当天的当前日期?
- 10. 如何从当前应用程序运行另一个应用程序?
- 11. 当我的应用程序未运行时,如何处理FCM?
- 12. 我的应用程序如何知道当前日期是否为当前实际日期?
- 13. 上次应用程序运行的存储日期/时间
- 14. 如何比较日期值在dataGrid中使用当前日期?
- 15. 如何使用CommandLineJobRunner运行Spring批处理应用程序
- 16. 如何验证开始日期应该大于yii的当前日期
- 17. 如何在jsdatepicker当前日期之前禁用日期
- 18. 在Mongo和Nodejs的网络应用程序中处理日期的日期
- 19. 如何使用完整日历显示当前日期
- 20. 如果我想创建闹钟应用程序,我该如何指定日期?
- 21. 插入锚如果行当前日期
- 22. 如何使用VB.net在wince应用程序中保存日期
- 23. 如何从Android应用程序中插入当前日期在sqlite中
- 24. 如何在iPhone应用程序中设置当前日期的Dateformat?
- 25. 如何停止日期选择器对话框日期以设置以前的日期。它应该只允许以上系统当前日期日期
- 26. 我们应该如何处理使用nservicebus的长时间运行过程
- 27. 如何在DatePickerDialog上的当前日期和前7天之间启用日期?
- 28. 如何调试时间依赖的应用程序? (使用当前日期时间变量而不是DateTime.Now)
- 29. 如何在JavaScript当前日期之后禁用日期日历
- 30. 如何从当前的应用程序运行独立的应用程序?
保留日期实例的目的是什么?记录某种最后一个动作? –