투케이2K

22. (Objective-C/objc) 프로토콜(Protocol) 사용해 헤더 정의 및 몸체 구현 실시 본문

Objective-C

22. (Objective-C/objc) 프로토콜(Protocol) 사용해 헤더 정의 및 몸체 구현 실시

투케이2K 2022. 2. 24. 13:49

[개발 환경 설정]

개발 툴 : XCODE

개발 언어 : OBJECTIVE-C

 

[ViewController.h]

#import <UIKit/UIKit.h>


// MARK: - [클래스 설명]
/*
// -----------------------------------------
1. ViewController (선언부)
2. 전역변수 , 메소드 , 인스턴스변수 (클래스 생성자) 등 선언
// -----------------------------------------
*/



// -----------------------------------------
/*
MARK: [요약 설명]
1. 프로토콜(Protocol)은 특정 역할을 수행하기 위한 메서드, 프로퍼티, 기타 요구사항 등의 청사진입니다
2. 프로토콜은 기능을 정의하고 제시 할 뿐이지 스스로 기능을 구현하지는 않습니다 (즉, 헤더만 정의)
3. 프로토콜은 구조체, 클래스, 열거형 등에서 사용할 수 있습니다
*/
// -----------------------------------------



// -----------------------------------------
@protocol ReadOne <NSObject>
- (void)ReadOne; 
@end


@protocol ReadTwo <NSObject>
- (void)ReadTwo; 
@end
// -----------------------------------------



// -----------------------------------------
@interface ViewController : UIViewController <ReadOne, ReadTwo>

@end
// -----------------------------------------
 

[ViewController.m]

#import "ViewController.h"
#import "S_FinalData.h"


// MARK: - [헤더 [선언부] 호출]
@interface ViewController ()
@end
@implementation ViewController



// MARK: - [클래스 설명]
/*
// -----------------------------------------
1. ViewController (구현부)
2. ios 13 이상 사용 : API_AVAILABLE(ios(13.0))
// -----------------------------------------
*/



// MARK: - [뷰 로드 실시]
- (void)viewDidLoad {
    [super viewDidLoad];
    printf("\n");
    printf("=============================== \n");
    printf("[ViewController >> viewDidLoad() :: 뷰 로드 실시] \n");
    printf("=============================== \n");
    printf("\n");
    
    // MARK: [프로토콜 메소드 호출 실시]
    [self ReadOne];
    [self ReadTwo];
}



// MARK: - [뷰 로드 완료]
- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    printf("\n");
    printf("=============================== \n");
    printf("[ViewController >> viewWillAppear() :: 뷰 로드 완료] \n");
    printf("=============================== \n");
    printf("\n");
}



// MARK: - [뷰 화면 표시]
- (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];
    printf("\n");
    printf("=============================== \n");
    printf("[ViewController >> viewDidAppear() :: 뷰 화면 표시] \n");
    printf("=============================== \n");
    printf("\n");
}



// MARK: - [뷰 정지 상태]
- (void)viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
    printf("\n");
    printf("=============================== \n");
    printf("[ViewController >> viewWillDisappear() :: 뷰 정지 상태] \n");
    printf("=============================== \n");
    printf("\n");
}



// MARK: - [뷰 종료 상태]
- (void)viewDidDisappear:(BOOL)animated {
    [super viewDidDisappear:animated];
    printf("\n");
    printf("=============================== \n");
    printf("[ViewController >> viewDidDisappear() :: 뷰 종료 상태] \n");
    printf("=============================== \n");
    printf("\n");
}



// MARK: - [헤더 파일에 정의 없이 : void 메소드 구현]
- (void)testMain {
    printf("\n");
    printf("=============================== \n");
    printf("[ViewController >> testMain() :: 테스트 메소드 수행] \n");
    printf("=============================== \n");
    printf("\n");
}



// MARK: - [프로토콜 메소드 구현 실시]
- (void)ReadOne {
    printf("\n");
    printf("=============================== \n");
    printf("[ViewController >> ReadOne() :: 프로토콜 메소드 수행] \n");
    printf("=============================== \n");
    printf("\n");
}

- (void)ReadTwo {
    printf("\n");
    printf("=============================== \n");
    printf("[ViewController >> ReadTwo() :: 프로토콜 메소드 수행] \n");
    printf("=============================== \n");
    printf("\n");
}



// -----------------------------------------
@end
// -----------------------------------------
 

[결과 출력]


반응형
Comments