swift - 日期/时间的重复函数

标签 swift macos

我正在尝试在我的 macOS 应用程序处于任何状态(包括已终止)时调用一个函数。这是我要实现的目标:

安排一个函数(很像 DispatchQueue.main.asyncAfter())每天在给定时间(比如上午 9 点)运行。我想在我的应用程序中添加一项功能,允许用户选择一天中的某个时间,并在每天的那个时间运行 Alamofire POST 请求。

我已经尝试使用 Runloop,最近还尝试使用 Grand Central Dispatch:

    DispatchQueue.main.asyncAfter(wallDeadline: DispatchWallTime.now() + .seconds(60)) {
        //Alamofire
    }

我可以在使用计时器运行应用程序时轻松完成此操作,但还没有找到在后台运行应用程序时完成此操作的方法。

最佳答案

这可能实现起来非常繁重(即不简单),但如果您希望即使您的应用程序终止也能运行任务,您可能需要考虑 writing your own LaunchAgent .

这里的技巧是让代理能够与您的应用程序交互(检索或发送共享信息)。

关于swift - 日期/时间的重复函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49701152/

相关文章:

macos - Launchpad 图标不再显示 NSDockTile 徽章

ios - 如何允许在 SpriteKit 中使用触摸移动多个图像?

swift - 使用 Swift 将自定义字体添加到 macOS 应用程序

python - Pandas 和 matplotlib : Different fonts between showfig and savefig (mac os x backend)

objective-c - 如何在 Objective-C 中更改 MacOS 中文件的图标?

macos - 为什么我的 rsync 脚本每次都会进行完整备份?

node.js - -bash : grunt: command not found

SwiftUI 在 subview 中隐藏 TabBar

swift - 如何在 Swift 中减去两个 NSDates?

swift - 未在对象内部调用闭包