투케이2K

84. (Objective-C/objc) __block 사용해 클로저 closure 함수 동작 및 내부 로직 처리 수행 실시 본문

Objective-C

84. (Objective-C/objc) __block 사용해 클로저 closure 함수 동작 및 내부 로직 처리 수행 실시

투케이2K 2022. 9. 22. 08:52

[개발 환경 설정]

개발 툴 : XCODE

개발 언어 : OBJECTIVE-C

 

[소스 코드]

// MARK: - [헤더 파일에 정의 없이 : void 메소드 구현]
- (void)testMain {
    printf("\n");
    printf("==================================== \n");
    printf("[ViewController >> testMain() :: 테스트 메소드 수행] \n");
    printf("==================================== \n");
    printf("\n");
    
    
    /*
     ------------------------------------
     [요약 설명]
     ------------------------------------
     1. __block : objc 클로저 closure 의 개념을 도입하기 위해서 만들어진 블럭 코드 부분입니다
     ------------------------------------
     2. 클로저는 func 함수 동작 및 내부 로직 처리를 간략 표현 및 수행할 수 있습니다
     ------------------------------------
     */
    
    
    // [try catch 구문 정의 실시]
    @try {
        
        // [초기 변수 선언 실시]
        __block int sum = 0;
        
        
        // [내부 로직 처리 수행 실시]
        void (^getSum)(int, int) = ^(int x, int y) {
            sum = x + y;
        };
        
        
        // [getSum 호출]
        getSum(10, 20);
        
        
        // [로그 출력 실시]
        printf("\n");
        printf("==================================== \n");
        printf("[ViewController >> try :: 로직 처리 결과 확인] \n");
        printf("[sum :: %d] \n", sum);
        printf("==================================== \n");
        printf("\n");

    }
    @catch (NSException *exception) {
        printf("\n");
        printf("==================================== \n");
        printf("[ViewController >> catch :: 예외 상황 확인] \n");
        printf("[name :: %s] \n", exception.name.description.UTF8String);
        printf("[reason :: %s] \n", exception.reason.description.UTF8String);
        printf("==================================== \n");
        printf("\n");
    }
}
 

[결과 출력]

 

 

반응형
Comments