분류 전체보기 (381) 썸네일형 리스트형 ViewController의 라이프 사이클 애플에서 제공하는 뷰 컨트롤러의 생명주기 ViewDidLoad: 뷰 컨트롤러를 만들 때 1번 호출 ViewWillAppear: 뷰가 곧 보일 때 호출되는 메서드 ViewDidAppear: 뷰가 보여진 뒤 호출되는 메서드 ViewWillDeappear: 뷰가 사라지기 직전에 호출되는 메서드 ViewDidDisappear: 뷰가 사라진 직후 호출되는 메서드 ★ 앱을 종료하는 것이 아니라 background foreground의 전환에는 뷰 컨트롤러 관련 메서드가 호출되지 않음 ★ 흐름 제어 (if 구문) if 구문 스위프트의 if 구문은 조건의 값이 꼭 Bool 타입이어야 함 if 구문 기본 구현 var numA: Int = 10 var numB: Int = 101 if numA > numB { print("numA가 더 커요") } else { print("numB가 터 커요") } // numB가 더 커요 else if 구문은 개수에 상관없이 작성이 가능 else 블럭은 없어도 가능 먼저 else if 블럭의 조건이 맞으면, 블럭 내부의 코드를 실행 후 조건문 탈출 그 뒤에 ele if 블럭의 조건이 맞아도 실행 안됨 (else if 블럭 내의 조건을 소괄호를 묶는건 선택사항) var numA: Int = 10 var numB: Int = 101 if numA == numB { print("numA와.. TabBar 만들어보기 (기본 설정) 먼저 코드로 구현하기 때문에 스토리보드를 삭제 https://explorer89.tistory.com/13 main storyboard (메인 스토리보드) 삭제하는 방법 먼저 프로젝트를 하나 생성 폴더명 표시줄에 "Main" 파일을 삭제 ("Main" 파일을 선택한 뒤 백스페이스로 파일 삭제 -> 이 때 Move to Trash 선택) info 파일을 선택한 뒤에 화살표가 가리키는 파일 삭제 "command" + "shift" + "f" 키를 누른 뒤에 검색창에 "main" 검색 (1번) 2번이 가리키는 파일 선택한 뒤에 3번 검색창에 "main" 검색 4번이 가리키는 파일 삭제 (파일 선택 뒤 백스페이스) SceneDelegate 파일 내 코드 수정 func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { .. 연산자 스위프트에서 연산자는 특정한 문자로 표현한 함수 연산자의 분류 분류 설명 예 단항 연산자 피연산자가 한 개인 연산자 !A 이항 연산자 피연산자가 두 개인 연산자 A + B 삼항 연산자 피연산자가 세 개인 연산자 A? B : C 전위 연산자 연산자가 피 연산자 앞에 위치하는 연산자 !A 중위 연산자 연산자가 피연산자 사이에 위치하는 연산자 A + B 후위 연산자 연산자가 피연산자 뒤에 위치하는 연산자 A! 연산자의 종류 할당 연산자 A = B A에 B라는 값을 할당 산술 연산자 + , - , * , / , % 같은 사칙연산 비교 연산자 두 값을 비교할 때 사용 ==, >= ,>, != 등의 비교연산 ★ "==" 와 "==="의 차이 ★ A == B : A와 B가 같은 값인지 비교하여 불리언 값을 반환 A .. 라이브러리와 프레임워크 라이브러리 자주 사용될 기능들을 모아 놓은 도구 상자 같은 개념 개발자와 구현할 기능 사이에서 개발자가 구현할 기능을 쉽게 해줄 수 있도록 도와주는 중간 계층의미 프레임워크 프레임워크를 사용하려면 해당 프레임워크를 만든 사람이 설계해 둔 "기본 설계도" 같은 개념의 구조를 유지해야 함 "기본 설계도" 같은 개념을 지키면서 프레임워크를 사용하는 사용자가 원하는 기능을 구현할 수 있도록 확장 가능 설계의 기반이 되는 "기본 설계도" + 라이브러리 = 프레임워크 라이브러리와 프레임워크의 차이 프레임워크는 "기본 설계도" 또는 "의도된 제약 사항"이라 불리는 가이드라인을 준수하며 사용 라이브러리는 "도구 상자" 또는 "모음집"으로 즉, 도구와 같은 개념 데이터 타입 고급 4편 (열거형 2탄) 항목 순회 열거형에 포함된 항목을 알고 싶다면? 열거형 이름 뒤에 콜론(:)을 작성하고 CaseIterable 프로토콜을 채택 열거형에 allCases라는 이름의 타입 프로퍼티를 통해 모든 항목 확인 CaseIterable 프로토콜을 활용한 열거형의 항목 순회 enum Fruit: CaseIterable { case apple case banana case melon case kiwi } let allCases: [Fruit] = Fruit.allCases print(allCases) // [main.Fruit.apple, main.Fruit.banana, main.Fruit.melon, main.Fruit.kiwi] 만약에 원시값을 갖는다면? enum Fruit: String, CaseIterable .. 데이터 타입 고급 4편 (열거형 1탄) 열거형은 연관된 항목들을 묶은 타입 프로그래머가 정의한 항목 외에는 추가 / 수정 불가 주로 다음과 같은 경우 사용 - 제한된 선택지 제공 - 정해진 값 외에 입력 제한 - 입력 값 한정 기본 열거형 키워드 enum으로 선언 각 항목 자체가 고유의 값임 Fruit 열거형의 선언 enum Fruit { case apple case banana case kiwi case melon } // 위와 같은 표현 (한 줄로도 작성 가능) enum Fruit { case apple, banana, kiwi, melon } Fruit 열거형 변수의 생성 및 값 변경 var myFruit: Fruit = Fruit.apple print(myFruit) // apple // 위의 코드와 같은 표현 var yourFruit.. 이전 1 ··· 44 45 46 47 48 다음