2014-09-03 58 views
-4

我希望在我的ios應用程序正在運行時執行一項功能。如何在ios應用程序運行時運行一個函數?

什麼是我需要寫這個功能,在委託類?

我很困惑,因爲如果我宣佈這viewContorller並切換到其他的viewController此休息。或者有像

func locationManager(manager:CLLocationManager, didUpdateLocations locations:[AnyObject]) { 

這是所有的時間運行?

謝謝!

+0

你具體指didUpdateLocations,或任何一般的方法? – Mike 2014-09-03 20:07:11

+0

一般的工作方式,像didUpdateLocations,所有的時間和不斷 – user3745888 2014-09-03 20:32:54

回答

-2

我建議把函數在另一個文件中,並使用NSThread

- (void)createThread 
{ 
    [NSThread detachNewThreadSelector:@selector(startBackgroundJob) toTarget:self withObject:nil]; 
} 

- (void)startBackgroundJob 
{ 
    [self performSelectorOnMainThread:@selector(monitorApp) withObject:nil waitUntilDone:NO]; 
} 

- (void)monitorApp 
{ 

} 
0

如果你具體指的didUpdateLocations,這是你不直接調用方法,而是調用OS隨時爲您提供位置更新。雖然它通常建議您的位置代碼是由一些單處理的地方,以鞏固/封裝所有位置的邏輯,如果你創建一個CLLocationManager,並告訴它startUpdatingLocations,該方法將不斷呼籲**由操作系統,您無需處理用定時器,循環等

**當應用程序被轉到後臺位置更新將停止,而當應用程序又回到前臺位置更新將恢復沒有你需要重新啓動它們。這些數據每秒鐘可以達到一次,但再次依靠操作系統來確定設備的位置並將這些更新發送給您。

如果你指的是別的這是一個不同的答案,但我懷疑你是直接引用位置更新。

+0

對不起,我不是指位置更新。所以答案是什麼?謝謝! – user3745888 2014-09-03 20:43:48

+0

答案很大程度上取決於你想要「一直」或「不斷」做什麼,而且很可能(在某些情況下)你不應該那樣做。 – Mike 2014-09-03 20:45:52

+0

例如我想檢查設備中可用的內存/存儲,並顯示給用戶什麼時候低,我有檢查存儲的功能,但我不知道我是否應該在一個線程中使用它。謝謝! – user3745888 2014-09-03 21:06:36

相關問題