MST

星途 面试题库

面试题:Objective-C中Block代码封装基础

请编写一段Objective-C代码,使用Block封装一个简单的数学计算功能,例如两个整数的加法,并通过回调获取计算结果。同时说明Block的声明、定义和调用的关键步骤。
28.9万 热度难度
编程语言Objective-C

知识考点

AI 面试

面试题答案

一键面试

以下是Objective-C代码实现:

#import <Foundation/Foundation.h>

// Block声明
typedef void(^MathCalculationBlock)(int result);

// 封装数学计算功能(加法)
void performMathCalculation(int num1, int num2, MathCalculationBlock block) {
    int result = num1 + num2;
    if (block) {
        block(result);
    }
}

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        // Block定义和调用
        performMathCalculation(5, 3, ^(int result) {
            NSLog(@"计算结果: %d", result);
        });
    }
    return 0;
}

Block声明、定义和调用的关键步骤:

  1. 声明
    • 使用typedef关键字为Block类型定义一个别名,方便后续使用。例如typedef void(^MathCalculationBlock)(int result);定义了一个名为MathCalculationBlock的Block类型,它接受一个int类型的参数且没有返回值。
  2. 定义
    • performMathCalculation函数中,定义了Block类型的参数block。在函数内部实现具体的数学计算(这里是加法),并在适当的时候调用Block。
  3. 调用
    • main函数中,调用performMathCalculation函数,并传入具体的参数和Block的实现。在Block实现中,处理计算结果,这里通过NSLog打印结果。