투케이2K

2. (Objective-C/objc) Xcode Objective-C 프로젝트 기본 구조 설명 및 기본 코드 첨부 본문

Objective-C

2. (Objective-C/objc) Xcode Objective-C 프로젝트 기본 구조 설명 및 기본 코드 첨부

투케이2K 2022. 2. 15. 17:56

[개발 환경 설정]

개발 툴 : XCODE

개발 언어 : OBJECTIVE-C

 

[기본 구조]

 

[AppDelegate.h]

#import <UIKit/UIKit.h>


// MARK: - [클래스 설명]
/*
// -----------------------------------------
1. 애플리케이션 딜리게이트 (선언부)
2. 전역변수 , 메소드 , 인스턴스변수 (클래스 생성자) 선언
// -----------------------------------------
*/



// -----------------------------------------
@interface AppDelegate : UIResponder <UIApplicationDelegate>
// -----------------------------------------


// MARK: [전역 변수 및 메소드 선언 부분]


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

[AppDelegate.m]

#import "AppDelegate.h"


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



// MARK: - [클래스 설명]
/*
// -----------------------------------------
1. 애플리케이션 딜리게이트 (구현부)
2. ios 13 이상 사용 : API_AVAILABLE(ios(13.0))
// -----------------------------------------
*/



// MARK: - [앱 프로세스 완료 및 앱 실행 실시]
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions API_AVAILABLE(ios(13.0)){
    printf("\n");
    printf("=============================== \n");
    printf("[AppDelegate >> didFinishLaunchingWithOptions] \n");
    printf("[설명 :: 앱 프로세스 완료 및 앱 실행 실시] \n");
    printf("=============================== \n");
    printf("\n");
    
    return YES;
}



// MARK: - [Scene 만들기 위한 구성 객체 반환 : 스토리보드 , info]
- (UISceneConfiguration *)application:(UIApplication *)application configurationForConnectingSceneSession:(UISceneSession *)connectingSceneSession options:(UISceneConnectionOptions *)options API_AVAILABLE(ios(13.0)){
    printf("\n");
    printf("=============================== \n");
    printf("[AppDelegate >> configurationForConnecting] \n");
    printf("[설명 :: Scene 만들기 위한 구성 객체 반환 : 스토리보드 , info] \n");
    printf("=============================== \n");
    printf("\n");
    
    return [[UISceneConfiguration alloc] initWithName:@"Default Configuration" sessionRole:connectingSceneSession.role];
}



// MARK: - [Scene 구성 객체 해제 실시]
- (void)application:(UIApplication *)application didDiscardSceneSessions:(NSSet<UISceneSession *> *)sceneSessions API_AVAILABLE(ios(13.0)){
    printf("\n");
    printf("=============================== \n");
    printf("[AppDelegate >> didDiscardSceneSessions] \n");
    printf("[설명 :: Scene 구성 객체 해제 실시] \n");
    printf("===============================");
    printf("\n");
}



// MARK: - [애플리케이션 사용자가 작업 태스크 날린 이벤트 감지]
- (void)applicationWillTerminate:(UIApplication *)application {
    printf("\n");
    printf("=============================== \n");
    printf("[AppDelegate >> applicationWillTerminate] \n");
    printf("[설명 :: 애플리케이션 사용자가 작업 태스크 날린 이벤트 감지] \n");
    printf("=============================== \n");
    printf("\n");
}



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

[SceneDelegate.h]

#import <UIKit/UIKit.h>


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



// -----------------------------------------
@interface SceneDelegate : UIResponder <UIWindowSceneDelegate>
// -----------------------------------------


// MARK: [전역 변수 및 메소드 선언 부분]
@property (strong, nonatomic) UIWindow * window;


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

[SceneDelegate.m]

#import "SceneDelegate.h"


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



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



// MARK: - [UI창 선택적 구성 및 제공된 UI창에 Scene 연결]
- (void)scene:(UIScene *)scene willConnectToSession:(UISceneSession *)session options:(UISceneConnectionOptions *)connectionOptions API_AVAILABLE(ios(13.0)){
    printf("\n");
    printf("=============================== \n");
    printf("[SceneDelegate >> willConnectTo] \n");
    printf("[설명 :: UI창 선택적 구성 및 제공된 UI창에 Scene 연결] \n");
    printf("=============================== \n");
    printf("\n");
}



// MARK: - [시스템에 의해서 Scene 해제 : background 상태 및 session 삭제]
- (void)sceneDidDisconnect:(UIScene *)scene API_AVAILABLE(ios(13.0)){
    printf("\n");
    printf("=============================== \n");
    printf("[SceneDelegate >> sceneDidDisconnect] \n");
    printf("[설명 :: 시스템에 의해서 Scene 해제 : background 상태 및 session 삭제] \n");
    printf("=============================== \n");
    printf("\n");
}



// MARK: - [Scene 활성화 및 사용자 이벤트에 응답 실시]
- (void)sceneDidBecomeActive:(UIScene *)scene API_AVAILABLE(ios(13.0)){
    printf("\n");
    printf("=============================== \n");
    printf("[SceneDelegate >> sceneDidBecomeActive] \n");
    printf("[설명 :: Scene 활성화 및 사용자 이벤트에 응답 실시] \n");
    printf("=============================== \n");
    printf("\n");
}



// MARK: - [Scene 활성 상태 해제 및 사용자 이벤트에 대한 응답 중지]
- (void)sceneWillResignActive:(UIScene *)scene API_AVAILABLE(ios(13.0)){
    printf("\n");
    printf("=============================== \n");
    printf("[SceneDelegate >> sceneWillResignActive] \n");
    printf("[설명 :: Scene 활성 상태 해제 및 사용자 이벤트에 대한 응답 중지] \n");
    printf("=============================== \n");
    printf("\n");
}



// MARK: - [Scene 포그라운드 실행]
- (void)sceneWillEnterForeground:(UIScene *)scene API_AVAILABLE(ios(13.0)){
    printf("\n");
    printf("=============================== \n");
    printf("[SceneDelegate >> sceneWillEnterForeground] \n");
    printf("[설명 : Scene 포그라운드 실행] \n");
    printf("=============================== \n");
    printf("\n");
}



// MARK: - [Scene 백그라운드 실행]
- (void)sceneDidEnterBackground:(UIScene *)scene API_AVAILABLE(ios(13.0)){
    printf("\n");
    printf("=============================== \n");
    printf("[SceneDelegate >> sceneDidEnterBackground] \n");
    printf("[설명 : Scene 백그라운드 실행] \n");
    printf("=============================== \n");
    printf("\n");
}



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

[ViewController.h]

#import <UIKit/UIKit.h>


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



// -----------------------------------------
@interface ViewController : UIViewController
// -----------------------------------------


// MARK: [전역 변수 및 메소드 선언 부분]


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

[ViewController.m]

#import "ViewController.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: - [뷰 로드 완료]
- (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");
}



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

[main.m]

#import <UIKit/UIKit.h>
#import "AppDelegate.h"

int main(int argc, char * argv[]) {
    NSString * appDelegateClassName;
    @autoreleasepool {
        // Setup code that might create autoreleased objects goes here.
        appDelegateClassName = NSStringFromClass([AppDelegate class]);
    }
    return UIApplicationMain(argc, argv, nil, appDelegateClassName);
}

 
반응형
Comments