4
A
回答
5
我們通常不會在生產中使用NSRunLoop來等待變量發生變化。可以使用回調。
然而,在單元測試代碼我們有以下幾點:
NSDate *twoSecondsFromNow = [NSDate dateWithTimeIntervalSinceNow:2.0];
while (!callBackInvoked && !errorHasOccured && runCount-- && [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:twoSecondsFromNow]) {
twoSecondsFromNow = [NSDate dateWithTimeIntervalSinceNow:2.0];
}
代碼等待,直到我們的回調被調用時,發生錯誤,或者我們已經等待已發生2周第二段時間數。我們使用它來測試進行回調的代表。
正如我所說我不會在生產代碼中這樣做。
1
你通常不會在你的代碼直接使用NSRunLoop
。
你會例如創建GUI
應用程序,它已經在它NSRunLoop
(在Xcode
使用預定義的應用程序代碼模板)。
它取決於應該改變的變量,你可能會把它放在'Model'對象的某個位置,甚至會有一些變化,比如數據到達在線,或者鏈接到GUI對象和用戶執行的動作。
- 如果是按鈕,您將設置 處理程序來調用操作。
- 如果它是可變的,您可以設置 KVC/KVO來檢測變化並呼叫 處理程序。
等等,Cocoa
將爲您處理膠水代碼,您只需要設置適當的處理來執行操作。
您的問題沒有足夠的細節,我建議看看一些基本的tutorial at Apple's site for developers,看看可可有什麼可用的。
相關問題
- 1. 如何在NSOperationQueue上使用NSRunLoop?
- 2. 如何使用gdata-objectivec-client?
- 3. iphone cocoa使用nsrunloop
- 4. 如何停止NSRunLoop
- 5. 在NSRunLoop
- 6. 如何在objectiveC類中使用struct和union?
- 7. 如何在ObjectiveC中使用變量的值?
- 8. 如何在ObjectiveC項目中使用C++文件
- 9. 如何在ObjectiveC中聲明和使用3維數組?
- 10. 具有在怪異崩潰[NSRunLoop(NSRunLoop)runMode:beforeDate:]
- 11. 如何正確停止NSRunLoop?
- 12. 如何在NSRunLoop中正確地使我的計時器無效
- 13. 如何使用uisearchcontroller在ios 9中添加tableview的搜索選項,使用objectiveC
- 14. 如何在ObjectiveC中使用解析版本1.12.0在PFQueryTableViewController中加載對象?
- 15. 使用AFNetworking 3.X ObjectiveC
- 16. 使用gdata-objectivec-client授權
- 17. 問題在使用ObjectiveC++編譯器
- 18. 如何使用Delphi XE2在FreePascal中包含ObjectiveC文件用於iPhone開發
- 19. OS X:如何使用NSRunLoop監視套接字讀取事件?
- 20. ObjectiveC中的CGContextFillPath如何工作?
- 21. 如何動畫浮動UIView在ObjectiveC
- 22. ObjectiveC中的MulticastDelegate
- 23. 中的ObjectiveC
- 24. 在的ObjectiveC
- 25. 在的ObjectiveC
- 26. 在的ObjectiveC
- 27. 在的ObjectiveC
- 28. 如何使NSRunLoop在單獨的線程內工作?
- 29. 從ObjectiveC類中引用UIViewController
- 30. 從Objectivec中調用C main