blocks:
有序列的代码指令块
^(){
blocksContent.
}
1外部参数对block read only
2但是如果外部对象
为
__block x类型 xxx;
则可以在block中使用。
3如果你在block中写了一个实例对象。
这个对象是在block外也可以使用的。
ios 实例变量 _x
typedef double (^xxx)(double op)
类别为:xxx
传入参数:1个 doulbe类型
返回类型:double
如果是
double (^xxx)(double op)=^(double op){return op * op}
则是直接对xxx设置block内容。
typedef double (^blockName)(double op)
如果没有返回值 或者可以被推断[就是你返回double 等这些 系统知道的 而不是你写的]那么可以
写成:
^(double op){
}
省略了返回值。
block里面的任何对象都需要一个strong的指针。
如果遇到memory cycles
则使用__weak xclass xx;