Q
一步一步的火法
0
A
回答
0
我有一個不同的解決方案,涉及使用GCD串行隊列和NSSelectorFromString
方法。
1:用你的方法創建一個數組名
第二:創建一個GCD串行隊列
3:使用NSSelectorFromString到方法名字符串轉換爲方法,並將其插入使用了一個串行Q循環等
下面是完整的測試代碼:
- (IBAction)buttonSerialQPressed:(id)sender
{
dispatch_queue_t serialdQueue;
serialdQueue = dispatch_queue_create("com.mydomain.testbed.serialQ", NULL);
NSArray *arrayMethods = [NSArray arrayWithObjects:@"method1", @"method2", @"method3", nil];
for (NSString *methodName in arrayMethods)
{
dispatch_async(serialdQueue, ^{
SEL myMethod = NSSelectorFromString(methodName);
[self performSelector:myMethod];
});
}
}
-(void)method1
{
for (int i=0; i<1000; i++)
{
NSLog(@"method1 i: %i", i);
}
}
-(void)method2
{
for (int i=0; i<10; i++)
{
NSLog(@"method2 i: %i", i);
}
}
-(void)method3
{
for (int i=0; i<100; i++)
{
NSLog(@"method3 i: %i", i);
}
}
3
一種方法是獲得函數指針的Queue
或Stack
,然後執行並彈出最頂端的方法,直到沒有方法離開。很明顯,你可以用一個數組和一個currentIndex
變量(從0
到arraySize - 1
增加currentIndex
,每次在myArray[currentIndex]
處執行函數指針)來做到這一點。有關函數指針本身的更多細節,請參閱Function Pointers in Objective C。
0
我會用NSOperationQueue。您可以設置它每次運行一個操作,在這種情況下,它將逐步執行所需的方法調用。您可以使用NSInvocationOperation來創建方法調用之外的操作。
相關問題
- 1. Lucene.Net一步一步
- 2. Rails 3註冊步驟一步一步
- 3. 一步一步在Windows 7
- 4. matplotlib,一步一步動畫
- 5. Ajax請求一步一步
- 6. Iex pry一步一步來?
- 7. 一步一步Google SSO(java)?
- 8. Java Web Start。一步一步
- 9. coq一步一步簡化?
- 10. 一步一步gflot教程?
- 11. Autohotkey,一步一步執行
- 12. Unity3D一步一步移動
- 13. Selenium一步一步學習
- 14. 驗證一步一步
- 15. C#一步一步執行
- 16. jQuery一步一步動畫
- 17. SSAS的實際實施(一步一步)
- 18. 一步一步的天氣API教程
- 19. FileStore一步一步的例子與4.2.1
- 20. ISampleGrabberFilter一次一個步驟的步驟
- 21. Qt的HTML5例子一步一步
- 22. 一次構建DateTime一步一步
- 23. 模擬退火算法中的這一步是什麼?
- 24. 一步
- 25. Symfony 2.0一步一步教程需要
- 26. 創建dfm一步一步與quanteda
- 27. 如何運行@RunWith(Cucumber.class)一步一步
- 28. 一步一步地調試makefile
- 29. Android應用指南一步一步
- 30. WordNet,查詢擴展,一步一步
你需要等待方法1調用方法2,等前完成? – user523234 2012-04-01 15:30:12
@ user523234:是這樣的 – 2012-04-01 16:07:46