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. Rails 3注册步骤一步一步
- 2. coq一步一步简化?
- 3. Java Web Start。一步一步
- 4. jQuery一步一步动画
- 5. Iex pry一步一步来?
- 6. C#一步一步执行
- 7. 一步一步在Windows 7
- 8. Unity3D一步一步移动
- 9. 一步一步的天气API教程
- 10. ISampleGrabberFilter一次一个步骤的步骤
- 11. SSAS的实际实施(一步一步)
- 12. FileStore一步一步的例子与4.2.1
- 13. 一次构建DateTime一步一步
- 14. 模拟退火算法中的这一步是什么?
- 15. 一步
- 16. VBSCRIPT随机带一步一步
- 17. 一步一步修剪空白
- 18. 如何运行@RunWith(Cucumber.class)一步一步
- 19. GDB从入口点一步一步
- 20. 一步一步地调试makefile
- 21. 总结名单成员一步一步
- 22. Django - 表单向导一步一步
- 23. 一步一步隐藏错误消息
- 24. 说明awk命令一步一步
- 25. 创建dfm一步一步与quanteda
- 26. Symfony 2.0一步一步教程需要
- 27. 一步一步调试目标c
- 28. 导出类型一步一步
- 29. Allegro CL,调试功能一步一步
- 30. 加载div(淡入)一步一步
你需要等待方法1调用方法2,等前完成? – user523234 2012-04-01 15:30:12
@ user523234:是这样的 – 2012-04-01 16:07:46