我怎样才能每隔几天运行一段代码

时间:2016-03-07 21:29:35

标签: ios swift

我目前正在使用swift开发应用程序,我想知道是否有办法在用户手机上每天运行一段代码?这方面的一个例子是我每隔5天运行一段代码。

3 个答案:

答案 0 :(得分:1)

无法在请求时间间隔内永久执行后台任务。完成后台任务的时间限制为10或15分钟。

您想在后台执行某些特殊操作吗?对于需要执行更多执行时间的任务,您必须请求特定权限才能在后台运行它们而不会被暂停。

您可以阅读有关后台执行的更多信息here

如果您想在手机处于活动状态时运行某些内容,可以通过查看AppDelegate中的applicationDidBecomeActive功能来执行此操作。

答案 1 :(得分:0)

在iOS中,您无法控制何时打开应用,并且您的应用无法随意加载自身以运行代码(除非涉及推送通知)。

话虽如此,您可以使用AppDelegate中的一种方法来检查自上次运行代码之日起是否已经过了5天或更多天(可以存储在UserDefaults中),并运行,如果它有。

答案 2 :(得分:-1)

我确信有更有效的方法可以做到这一点,因为我只是一个初学者,但我不妨尝试提供帮助。你能创建一个每x天发射一次的NSTimer吗? NSTimeInterval将是60(秒)* 60(分钟)* 24(小时)*(您想要的天数)。然后Selector将是&#34;(无论你的名字是什么)&#34;。最后,无论你想要在x天内发生什么,都会放在SelectorNSTimer的函数中,而override func viewDidLoad() {}中的@model Test.Web.ViewModels.ParentViewModel <script> function filterChildNamesList() { debugger; return { cFilter: $("#Child0").data("kendoComboBox").input.val() }; } </script> @{ Model.ChildList = new List<Test.Web.Model.Child>(); for (int count = 0; count < Model.NumChilds; count++) { Model.ChildList.Add(new Test.Web.Model.Child()); } } <table> @for (int count = 0; count < Model.ChildList.Count; count++) { <tr> <td> <label>Child @count</label> @(Html.Kendo().ComboBoxFor(m => m.ChildList[count].ChildName) .HtmlAttributes(new { style = "width:300px", id = "Child" + count }) .Placeholder("Enter 4 characters...") .DataTextField("description") .DataValueField("id") .Filter(FilterType.Contains) .MinLength(2) .DataSource(source => { source.Read(read => { read.Action("GetChildNames", "Parent"). Data("filterChildNamesList"); }).ServerFiltering(true); })) <td> </tr> } </table> 很可能会出现在{{1}}中我希望这可以帮到你和未来的观众。