Math.h
#import <Foundation/Foundation.h>
@interface Math : NSObject{
// NSString * _name;
}
@property(nonatomic, copy) NSString * name; //_name
//按给定的方式去计算两个整型数据的运算结果
//返回值类型 (^block变量名)(参数列表);
//int(^)(int,int)
+ (int)CalculateA:(int)a B:(int)b Block:(int(^)(int,int))block;
math.m
#import "Math.h"
@implementation Math
- (void)func{
_name = @"haha";
}
+ (int)CalculateA:(int)a B:(int)b Block:(int (^)(int, int))block{
//通过block的功能来计算两个数据
return block(a, b);
}
@end
main.m
#import <Foundation/Foundation.h>
#import "Math.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
//使用Math的类方法计算两个数的和
int (^ block)(int , int) = ^(int a, int b){
return a + b;
};
int num = [Math CalculateA:200 B:20 Block:block];
NSLog(@"%d" , num);
//使用Math的类方法计算两个数的乘积
int num2 = [Math CalculateA:20 B:10 Block:^(int a, int b) {
return a * b;
}];
NSLog(@"%d", num2);
}
return 0;
}