2011-02-10 34 views
3

是否可以運行由主線程上的nstimer調用的選擇器?NSTimer在主線程上執行選擇器

NSTimer在它自己的線程中產生。

我的結構是一個線程調用一個nstimer的方法,nstimer調用一個方法做一些更新,但我需要這些更新發生在主線程上。解決辦法是什麼?添加另一種方法並說performOnMainThread

回答

4

是的,從你的定時器例程中調用useOnMainThread。從文檔:

定時器與運行 循環一起工作。要有效地使用計時器,您應該知道 運行循環的運行方式 - 請參閱NSRunLoop和Threading 編程指南。特別注意 運行循環會保留它們的定時器,因此 可以在您將 添加到運行循環後釋放定時器。

也是一個關於無效重複計時器警告:

一個重複的計時器,你必須 通過調用無效方法無效自己的計時器對象 。 調用此方法請求從當前的 運行循環中刪除定時器 ;因此,您應該始終調用 的無效方法,其中安裝的定時器的線程爲