IOS/Swift 3

[Swift] Main Attribute

Entry Point 포스팅을 통해 설명했듯이 @main, @UIApplicationMain 등의 Attribute를 통해 Entry Point를 지정할 수 있다. 이 포스팅은 각 Attribute가 어떻게 Entry Point를 지정하는지에 대해 설명한다. @UIApplicationMain Xcode에서 App 프로젝트를 생성하면 자동으로 생성되는 AppDelegate 파일에서 아래와 같은 코드를 확인할 수 있다. @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { ... 생략 ... 공식 문서를 통해 @UIApplicationMain Attribute에 대해 알아보자. Using this attribute is equi..

IOS/Swift 2021.10.08

[Swift] Top-Level Code란?

Top-Level 정의 Apple의 공식 문서에 따르면 Top-Level의 정의는 다음과 같다. Any executable statement not written within a function body, within a class, or otherwise encapsulated is considered top-level. 해석하면 함수, 클래스 또는 다른 무언가로 감싸지지 않은 모든 구문은 Top-Level로 간주된다. Top-Level에서 선언된 모든 것들은 같은 모듈 내에서 자유롭게 접근이 가능하며 접근 제어 문법을 통해 이를 제한할 수 있다. Top-Level Code Top-Level Code에는 선언문(Top-Level Declarations)과 실행 구문(Excutable Top-Level ..

IOS/Swift 2021.10.07

[Swift] Entry Point란?

Entry Point란? Entry Point는 말 그대로 '진입점'이라는 의미로 프로그램이 시작하는 지점이다. 모든 프로그램에는 Entry Point가 존재한다. CPU가 Entry Point를 통해 해당 프로그램을 시작하기 때문이다. OS 환경에서 응용프로그램을 실행하면 Dispatcher는 해당 프로그램을 CPU에 적재한다. 그러면 CPU의 PC(Program Counter)는 응용프로그램을 실행하기 위한 특정 주소로 Branch 해야 한다. 이때 PC(Program Counter)는 어떤 값을 가져야 할까? 바로, 응용프로그램의 시작 주소를 가리켜야 한다. 즉, 응용프로그램이 시작될 때 PC(Program Counter)는 Entry Point의 주소로 Branch 한다. Script언어나 간단한..

IOS/Swift 2021.10.05