mparetor, Result ==> -1.
use Comparetor, Result ==> 123.
use Comparetor, Result ==> 1.
块使用上下文变量
块代码也可以使用其所在范围的变量,但是块代码中不能修改该变量的值或者引用, 例如块所在函数的变量、类的成员变量。如果需要在块代码中修改变量值,可以使用__block定义变量。示例如下 :
int main(int argc, const char * argv[])
{
@autoreleasepool {
// 使用上下文变量
int valueInMain = 222 ;
void (^printValue)() = ^() {
NSLog(@"使用函数上下文的变量(不能修改) : %i.", valueInMain) ;
} ;
printValue();
__block int anInteger = 42;
void (^testBlock)(void) = ^{
anInteger = 100;
NSLog(@"使用__block声明的变量(可以修改) : %i", anInteger);
};
testBlock();
}
return 0;
}
输出如下 :
使用函数上下文的变量(不能修改) : 222.
使用__block声明的变量(可以修改) : 100