2
A
回答
7
德米特里的答案是完全正确的。块语法当成一个C函数声明:
// C function -> <return type> <function name> (<arguments>)
void someFunction(void)
{
// do something
}
// block -> <return type> (^<block variable name>) (<arguments>)
void (^someBlock)(void) = ^{
// do something
};
又如:
// C function
int sum (int a, int b)
{
return a + b;
}
// block
int (^sum)(int, int) = ^(int a, int b) {
return a + b;
};
所以只是觉得块语法为C函数声明: 首先返回类型int
,那么块变量的名称(^sum)
,然后参数类型列表(int, int)
。
但是,如果你需要经常在你的应用程序特定类型的块,使用typedef:
typedef int (^MySumBlock)(int, int);
现在,您可以创建MySumBlock
类型的变量:
MySumBlock debugSumBlock = ^(int a, int b) {
NSLog(@"Adding %i and %i", a, b);
return a + b;
};
MySumBlock normalSumBlock = ^(int a, int b) {
return a + b;
};
。希望帮助:)
2
只是阻止语法
void (^someBlock)(void) = ^{
//some code
};
+0
给你一个答案upvote,但我觉得像其他人可能会帮助,如果它的顶部。谢谢德米特里 – 2013-04-23 09:11:25
相关问题
- 1. 实例化实例变量为块
- 2. ARC和UIView实例变量
- 3. Java实例初始化块和实例变量
- 4. Ruby:实例化块中的新变量
- 5. 初始化块实例变量
- 6. 如何将我的AppDelegate定义为它实例化的类的实例变量?
- 7. ARC分配实例变量init或awakeFromNib
- 8. arc,强和弱的实例变量
- 9. ARC不会发布实例变量
- 10. Objective C ARC和实例变量iOS SDK
- 11. 在RSpec中,如何将实例变量传递给示例块?
- 12. 块中的实例变量
- 13. 参考实例变量块
- 14. 类块实例变量
- 15. 如何使用实例化变量隐藏接口变量
- 16. 实例化空csv变量
- 17. 实例化被声明为实例变量的ArrayList
- 18. 如何实例化一个变量?
- 19. 如何迭代实例变量中的实例变量?
- 20. 变量将被实例化多次
- 21. 使用实例变量
- 22. 使用实例变量&self.variable
- 23. JavaScript:如何使用实例变量
- 24. 如何使用实例变量?
- 25. 如何将类实例化为变量名?
- 26. 实例变量
- 27. 实例变量
- 28. 实例变量
- 29. 实例变量
- 30. 实例变量
非常棒的答案约翰内斯,谢谢你的概念性演练 – 2013-04-23 09:10:50
高兴地帮助:)我花了我一段时间围绕块语法绕我的头:) – 2013-04-23 09:15:25