1 前言

本文将介绍如何函数调用Block Object以及Block Object调用Block Object。

2 代码实例

TestDemo.h

#import <Foundation/Foundation.h>

@interface TestDemo : NSObject

- (void) callSimpleBlock;
- (void) callTrimBlock;
@end

TestDemo.m

#import "TestDemo.h"

@implementation TestDemo


/*************** 方法调用Block Object Start ***************/
void (^simpleBlock)(NSString *) = ^(NSString *paramString){
    /* Implement the block object here and use the paramString parameter */
    NSLog(@"%@",paramString);
};
- (void) callSimpleBlock{
    simpleBlock(@"Archy");
}
/*************** 方法调用Block Object End ***************/

/*************** Block Object调用Block Object Start ***************/
NSString *(^trimString)(NSString *) = ^(NSString *inputString){
    NSString *result = [inputString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
    return result;
};
                        
NSString *(^trimWithOtherBlock)(NSString *) = ^(NSString *inputString){
        return trimString(inputString);
};
- (void) callTrimBlock{
        NSString *trimmedString = trimWithOtherBlock(@" Archy ");
        NSLog(@"Trimmed string = %@", trimmedString);
}
/*************** Block Object调用Block Object Start ***************/

@end

main.m

int main(int argc, const char * argv[])
{

    @autoreleasepool {
        
        TestDemo *test = [[TestDemo alloc] init];
//        [test callSimpleBlock];
        [test callTrimBlock];
    }
    return 0;
}