試圖更改按鈕圖片,等待一秒鐘,然後再換回。沒有太多的運氣試圖讓它起作用,那麼是否有辦法暫時暫停程序一秒鐘,而沒有計時器實際執行任何事情,並且沒有程序繼續執行代碼?有沒有辦法寫一個NSTimer,所以它暫停一秒鐘的程序?
3
A
回答
4
嘗試把你變回代碼的方法,並從變化的方法調用:
[self performSelector:@selector(changeBack:) withObject:nil afterDelay:1.0];
1
您可以撥打
// sleep first appeared in Version 7 UNIX, 1979
sleep(1);
或者,更現代:
// usleep appeared in 4.3 BSD, released 1986
usleep(1000000);
或者,再次更簡單地:
// nanosleep can be found in POSIX.1b, published 1993
struct timespec ts;
ts.tv_sec = 1;
nanosleep(&ts, NULL);
或者,更現代,更可可-Y:
// +sleepForTimeInterval first appeared in Mac OS X 10.5, 2007
[NSThread sleepForTimeInterval:1.0];
所有這些都將暫停當前線程。如果你的應用程序只有一個線程,那麼這意味着它會停止你的整個應用程序。它將在睡眠期間對任何用戶界面事件無響應。
NSObject參考顯示了一種名爲performSelector:withObject:afterDelay:的方法。該方法通過在運行循環中調度指定延遲後執行選擇器。這意味着運行循環會繼續循環並處理事件,消耗定時器,排空自動釋放池,發送更多預定消息等等。
在這種特殊情況下,最好在運行循環中調度選擇器(提供更改圖像並提供一秒延遲的選擇器)。
+0
從Mac OS X手冊頁收集信息。 – dreamlax 2010-05-20 08:48:35
相關問題
- 1. 有沒有辦法無限期地暫停一個線程?
- 2. 暫停c#程序幾秒鐘?
- 3. 如何暫停程序幾秒鐘
- 4. 如何暫停程序幾秒鐘?
- 5. 有沒有辦法暫停CABasicAnimation?
- 6. 有沒有辦法用spotify api暫停?
- 7. 有沒有辦法暫停/恢復SwingWorker
- 8. 有沒有辦法暫停SKActions?
- 9. 有沒有辦法在程序期間暫停OS調度?
- 10. 有沒有辦法暫停所有Threading.Timer定時器?
- 11. 有沒有辦法暫停animateWithDuration一旦啓動?
- 12. 有沒有辦法將它寫成一個查詢?
- 13. 有沒有辦法在暫停狀態下啓動進程?
- 14. Javascript - cookies,有沒有辦法一次爲所有瀏覽器編寫一個cookie?
- 15. 有沒有一種方法可以實際暫停readline?
- 16. 有沒有辦法以編程方式暫停從監聽HTTP端口的Tomcat
- 17. pthread - 暫停/暫停所有線程
- 18. 有沒有什麼辦法可以在沒有「輸入密鑰」的情況下等待並暫停程序?
- 19. 在MVC中,有沒有辦法在控制器中可靠地暫停執行X秒鐘?
- 20. 有沒有辦法一個接一個檢查程序的流程?
- 21. (Bukkit)有沒有辦法讓服務器上的所有在線玩家每10秒鐘處理一件物品?
- 22. NSTimer沒有停止
- 23. 有沒有辦法獲得一個主題的所有訂閱?
- 24. 有沒有辦法讓一個窗口的所有BindingExpression對象?
- 25. 有沒有辦法讓一個MeshPhongMaterial忽略所有的燈
- 26. 如何以編程方式暫停NSTimer?
- 27. 如何在Linux中暫停另一個腳本幾秒鐘
- 28. 有沒有辦法以編程方式創建一個unwind segue?
- 29. 有沒有辦法以編程方式評估一個宏?
- 30. NSRunAlertPanel暫停NSTimer?
有沒有辦法將2個對象傳遞給選擇器的參數?我發現一個與2的對象:'s,但沒有延遲後的那一個。 – marty 2010-05-19 11:34:02
@marty:將兩個對象添加到NSArray並將NSArray作爲對象傳遞。 – dreamlax 2010-05-19 12:10:18
我更喜歡使用字典,因爲它可以很容易地擴展到任意數量的命名參數,比數組更具可讀性/可維護性。 – 2010-05-19 13:25:54