1. AppDelegate 수정 with 설명
// vim AppDelegate.h
#import <UIKit/UIKit.h>
// MARK: - [클래스 설명]
/*
// -----------------------------------------
1. 애플리케이션 딜리게이트 (선언부)
2. 전역변수 , 메소드 , 인스턴스변수 (클래스 생성자) 선언
// -----------------------------------------
*/
// -----------------------------------------
@interface AppDelegate : UIResponder <UIApplicationDelegate>
// -----------------------------------------
// MARK: [전역 변수 및 메소드 선언 부분]
// -----------------------------------------
@end
// -----------------------------------------
// vim 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)){
// 설명 :: 앱 프로세스 완료 및 앱 실행 실시
NSLog(@"[AppDelegate >> didFinishLaunchingWithOptions]");
return YES;
}
// MARK: - [Scene 만들기 위한 구성 객체 반환 : 스토리보드 , info]
- (UISceneConfiguration *)application:(UIApplication *)application configurationForConnectingSceneSession:(UISceneSession *)connectingSceneSession options:(UISceneConnectionOptions *)options API_AVAILABLE(ios(13.0)){
// 설명 :: Scene 만들기 위한 구성 객체 반환 : 스토리보드 , info
NSLog(@"[AppDelegate >> configurationForConnecting]");
return [[UISceneConfiguration alloc] initWithName:@"Default Configuration" sessionRole:connectingSceneSession.role];
}
// MARK: - [Scene 구성 객체 해제 실시]
- (void)application:(UIApplication *)application didDiscardSceneSessions:(NSSet<UISceneSession *> *)sceneSessions API_AVAILABLE(ios(13.0)){
// 설명 :: Scene 구성 객체 해제 실시
NSLog(@"[AppDelegate >> didDiscardSceneSessions]");
}
// MARK: - [애플리케이션 사용자가 작업 태스크 날린 이벤트 감지]
- (void)applicationWillTerminate:(UIApplication *)application {
// 설명 :: 애플리케이션 사용자가 작업 태스크 날린 이벤트 감지
NSLog(@"[AppDelegate >> applicationWillTerminate]");
}
// -----------------------------------------
@end
// -----------------------------------------
2. SceneDelegate 수정 with 설명
// vim SceneDelegate.h
#import <UIKit/UIKit.h>
// MARK: - [클래스 설명]
/*
// -----------------------------------------
1. UI 딜리게이트 (선언부)
2. 전역변수 , 메소드 , 인스턴스변수 (클래스 생성자) 선언
// -----------------------------------------
*/
// -----------------------------------------
@interface SceneDelegate : UIResponder <UIWindowSceneDelegate>
// -----------------------------------------
// MARK: [전역 변수 및 메소드 선언 부분]
@property (strong, nonatomic) UIWindow * window;
// -----------------------------------------
@end
// -----------------------------------------
// vim 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)){
// 설명 :: UI창 선택적 구성 및 제공된 UI창에 Scene 연결]
NSLog(@"[Scene 연결] ::: SceneDelegate >> willConnectTo");
}
// MARK: - [시스템에 의해서 Scene 해제 : background 상태 및 session 삭제]
- (void)sceneDidDisconnect:(UIScene *)scene API_AVAILABLE(ios(13.0)){
// 설명 :: 시스템에 의해서 Scene 해제 : background 상태 및 session 삭제]
NSLog(@"[Scene 해제] ::: SceneDelegate >> sceneDidDisconnect");
}
// MARK: - [Scene 활성화 및 사용자 이벤트에 응답 실시]
- (void)sceneDidBecomeActive:(UIScene *)scene API_AVAILABLE(ios(13.0)){
// 설명 :: Scene 활성화 및 사용자 이벤트에 응답 실시]
NSLog(@"[이벤트 응답] ::: SceneDelegate >> sceneDidBecomeActive");
}
// MARK: - [Scene 활성 상태 해제 및 사용자 이벤트에 대한 응답 중지]
- (void)sceneWillResignActive:(UIScene *)scene API_AVAILABLE(ios(13.0)){
// 설명 :: Scene 활성 상태 해제 및 사용자 이벤트에 대한 응답 중지
NSLog(@"[응답 중지] ::: SceneDelegate >> sceneWillResignActive");
}
// MARK: - [Scene 포그라운드 실행]
- (void)sceneWillEnterForeground:(UIScene *)scene API_AVAILABLE(ios(13.0)){
// 설명 : Scene 포그라운드 실행"
NSLog(@"[포그라운드 실행] ::: SceneDelegate >> sceneWillEnterForeground");
}
// MARK: - [Scene 백그라운드 실행]
- (void)sceneDidEnterBackground:(UIScene *)scene API_AVAILABLE(ios(13.0)){
// 설명 : Scene 백그라운드 실행
NSLog(@"[백그라운드 실행] ::: SceneDelegate >> sceneDidEnterBackground");
}
// -----------------------------------------
@end
// -----------------------------------------
3. ViewController 수정 with 설명
// vim ViewController.h
// UIKit 프레임워크의 헤더 파일을 import합니다. UIKit은 iOS 애플리케이션 개발에 필요한 다양한 클래스와 기능을 제공합니다.
#import <UIKit/UIKit.h>
// MARK: - [클래스 설명]
/*
// -----------------------------------------
1. ViewController (선언부)
2. 전역변수 , 메소드 , 인스턴스변수 (클래스 생성자) 선언
// -----------------------------------------
*/
// -----------------------------------------
@interface ViewController : UIViewController
// -----------------------------------------
// MARK: [전역 변수 및 메소드 선언 부분]
// -----------------------------------------
@end
// -----------------------------------------
// vim ViewController.m
// ViewController.h 파일을 import하여 해당 클래스의 정의를 가져옵니다.
#import "ViewController.h"
// MARK: - [헤더 [선언부] 호출]
@interface ViewController ()
@end
// -----------------------------------------
@implementation ViewController
// -----------------------------------------
// MARK: - [클래스 설명]
/*
// -----------------------------------------
1. ViewController (구현부)
2. ios 13 이상 사용 : API_AVAILABLE(ios(13.0))
// -----------------------------------------
*/
// MARK: - [뷰 로드 실시]
// 메서드를 구현합니다. 이 메서드는 뷰 컨트롤러의 뷰가 메모리에 로드된 후에 호출되는 메서드입니다.
- (void)viewDidLoad {
// 부모 클래스인 UIViewController의 viewDidLoad 메서드를 호출합니다.
[super viewDidLoad];
NSLog(@"[뷰 로드 실시] ::: ViewController >> viewDidLoad()");
}
// MARK: - [뷰 로드 완료]
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
NSLog(@"[뷰 로드 완료] ::: ViewController >> viewWillAppear()");
}
// MARK: - [뷰 화면 표시]
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
NSLog(@"[뷰 화면 표시] ::: ViewController >> viewDidAppear()");\
}
// MARK: - [뷰 정지 상태]
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
NSLog(@"[뷰 정지 상태] ::: ViewController >> viewWillDisappear()");
}
// MARK: - [뷰 종료 상태]
- (void)viewDidDisappear:(BOOL)animated {
[super viewDidDisappear:animated];
NSLog(@"[뷰 종료 상태] ::: ViewController >> viewDidDisappear()");
}
// -----------------------------------------
@end
// -----------------------------------------
'Development > iOS' 카테고리의 다른 글
[Objective-C] 입문하기 - 05 : property 프로퍼티 사용해 변수 선언 및 get , set 데이터 지정 및 호출 실습 (0) | 2023.06.22 |
---|---|
[Objective-C] 입문하기 - 04 : 간단한 클래스와 인스턴스를 만들어보고 실행해보기 (0) | 2023.06.22 |
[Objective-C] 입문하기 - 03 : 버튼 만들고, 누르면 alert 창 뜨게 하는 앱 만들기 (0) | 2023.06.15 |
[Objective-C] 입문하기 - 02 : Hello World를 출력하는 앱 만들기 (0) | 2023.06.14 |
[Objective-C] 입문하기 - 01 : 기본적인 코드 짜서 메소드 만들고 활용해 콘솔에 의도대로 출력해보기 (0) | 2023.06.09 |