2016-03-07 55 views
-2

我目前正在swift開發一個應用程序,我想知道是否有辦法在用戶手機上每隔幾天運行一段代碼?一個例子是我每5天運行一段代碼。我怎樣才能每天運行一段代碼

+0

這是什麼平臺? – sschale

+0

是的,我已經將它添加到現在的問題和迅速 – Tunds

+1

不,像這是一個mac?一部手機?在服務器上開源swift? – sschale

回答

1

無法在您請求的時間間隔內永久性地在後臺執行任務。完成後臺任務的時間限制爲10或15分鐘。

你想在背景中做什麼特別的事情?對於需要更多執行時間來執行的任務,您必須請求特定權限才能在後臺運行它們而不會暫停它們。

你可以閱讀更多關於後臺執行here

如果您想在手機處於活動狀態時運行某些操作,您可以通過檢查AppDelegate中的applicationDidBecomeActive函數來執行此操作。

0

在iOS中,您無法控制何時打開應用程序,並且您的應用程序不能隨意加載自身以運行代碼(除非涉及推送通知)。這就是說,您可以使用AppDelegate中的一種方法來檢查自上次運行代碼(您可以將其存儲在UserDefaults中)之後是否已經過去了5天或更長時間,並且如果存在,則運行。

-1

我確信有更有效的方法來做這件事,因爲我只是一個初學者,但我不妨嘗試提供幫助。你可以創建一個NSTimer,每隔幾天觸發一次。 NSTimeInterval將是60(秒)* 60(分鐘)* 24(小時)*(您希望的天數)。然後Selector將是「(不管你的函數的名字是什麼)」。最後,無論你希望每隔x天發生什麼,你會在NSTimer中的Selector函數中放入最有可能會出現在override func viewDidLoad() {}中的函數,我希望這可以幫助你和未來的觀衆。

+0

首先:您的答案將受益於格式。第二:24 * 60 * 60是錯誤的。由於DST日期可能爲23,24或25小時。 – vikingosegundo