Notice
Recent Posts
Recent Comments
Link
투케이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);
}
반응형
'Objective-C' 카테고리의 다른 글
6. (Objective-C/objc) for , while true 무한 루프 반복문을 사용해서 카운트 수행 실시 (0) | 2022.02.18 |
---|---|
5. (Objective-C/objc) NSMutableArray 가변 배열 사용해 데이터 삽입 , 변경 , 삭제 수행 실시 (0) | 2022.02.18 |
4. (Objective-C/objc) property 프로퍼티 사용해 변수 선언 및 get , set 데이터 지정 및 호출 실시 (0) | 2022.02.18 |
3. (Objective-C/objc) 기본 void , return 함수 (메소드) 구현 실시 (0) | 2022.02.18 |
1. (Objective-C/objc) Xcode 사용해서 프로젝트 생성 방법 설명 (0) | 2022.02.15 |
Comments