6.3 Invoking Block Objects

来源:互联网 发布:生物医学数据挖掘 编辑:程序博客网 时间:2024/05/21 04:16

调用block对象

像调用C函数那样来调用block对象就可以了。

6.1和6.2里面已经有一些调用的例子了,这里演示一个复杂点的例子。
独立的block对象,我们这样来调用:
void (^simpleBlock)(NSString *) = ^(NSString *paramString){
/* Implement the block object here and use the
paramString parameter */
};
- (void) callSimpleBlock{
simpleBlock(@"O'Reilly");
}

如果你想在一个独立的block对象里面调用另一个独立的block对象呢?还是跟C函数类似调用:
/*************** Definition of first block object ***************/
NSString *(^trimString)(NSString *) = ^(NSString *inputString){
NSString *result = [inputString stringByTrimmingCharactersInSet:
[NSCharacterSet whitespaceCharacterSet]];
return result;
};
/*************** End definition of first block object ***************/
/*************** Definition of second block object ***************/
NSString *(^trimWithOtherBlock)(NSString *) = ^(NSString *inputString){
return trimString(inputString);
};
/*************** End definition of second block object ***************/
- (void) callTrimBlock{
NSString *trimmedString = trimWithOtherBlock(@" O'Reilly ");
NSLog(@"Trimmed string = %@", trimmedString);
}
接下来可以进一步这样调用
[self callTrimBlock];
此方法将调用trimWithOtherBlock block对象,而这个对象又会调用trimString block对象。

 

 


 

0 0