전체 글 94

BMI 계산기 (화면 전환 및 데이터 전달)

일전에 배운 화면 전환과 데이터 전달을 통해 간단한 BMI 계산기를 만듦 모든 UI는 코드로 작성 BMI 계산기는 간단한 로직으로 구성 사용자가 키와 몸무게를 입력 -> 계산 버튼 누름 -> 화면전환과 동시에 계산된 값을 전환된 화면에 보여줌 여기서 화면 전환, 데이터전달과 BMI 계산 관련된 함수는 각각 구현할 것 1개의 함수는 1개의 기능만 하도록 할 것 데이터를 전달할 때는 변수를 통해서 할 것 BMI 계산식 BMI 계산 함수를 통해 반환된 bmi를 통해 bmi 치수에 따른 글자 배경색과 문구를 설정 DetailViewController에 데이터를 전달할 때 사용할 변수 DetailVeiwController로 화면전환하면서 데이터 전달하는 함수 ViewController에서 온 데이터를 Detail..

iOS/UIKIT 2024.01.16

옵셔널

Optional | Apple Developer Documentation Optional | Apple Developer Documentation A type that represents either a wrapped value or the absence of a value. developer.apple.com 옵셔널 값이 '있을 수도' 또는 '없을 수도'를 나타내는 표현 즉, 변수 또는 상수에 값이 nil 일 수도 있다는 표현 옵셔널 사용 값의 유무를 뜻하는 게 바로 옵셔널 사용 목적 count 라는 변수에 0을 할당한다면? 이는 0이라는 값을 저장한다는 의미 myFruit 라는 변수에 " " (빈 값)을 할당한다면? '빈 문자열'을 저장한다는 의미 ★ 변수 또는 상수에 정말 값이 없다면 = 'nil'..

iOS/Swift 2024.01.16

함수 3편 (중첩 함수)

중첩 함수 스위프트는 함수 내부에 또 다른 함수를 생성 가능. 외부 함수의 생성과 소멸을 내부 함수는 같이 함 중첩 함수의 사용 func outerFunction() { print("Outer Function") func innerFunction() { print("Inner Function") } } outerFunction() // Outer Function 만약에 외부에서 innerFunction()에 접근한다면? 범위내에서 찾을 수 없다는 오류 발생 innerFunction() // cannot find 'innerFunction' in scope 그럼 내부 함수도 실행하고 싶다면? func outerFunction() -> () -> () { print("Outer Function") func ..

iOS/Swift 2024.01.15

화면 이동과 데이터 전달 1편

ViewController에서 DetailViewController로 화면 전환 구현 (UI는 코드로 구현, Main 파일은 삭제하지 않고 진행) 최종 구현 화면 전환에 사용되는 함수 https://developer.apple.com/documentation/uikit/uiviewcontroller/1621380-present present(_:animated:completion:) | Apple Developer Documentation Presents a view controller modally. developer.apple.com 화면 전환되기 전으로 되돌아가기 위해 사용되는 함수 https://developer.apple.com/documentation/uikit/uiviewcontroller/..

iOS/UIKIT 2024.01.14

함수 2편 (매개변수, 데이터 타입)

매개변수 기본값 매개변수마다 기본값 지정 가능 func sayHello(from name: String, to myName: String = "Jenny") -> String { return "Hello \(name)! I`m \(myName)" } // myName 매개변수의 기본값 사용 let toJenny: String = sayHello(from: "Tom") print(toJenny) // Hello Tom! I`m Jenny // 기본값 외 값 할당 let toMike: String = sayHello(from: "Jerry", to: "Cole") print(toMike) // Hello Jerry! I`m Cole ★ 기본값이 있는 매개변수는 맨 마지막에 위치, 기본값의 유무보단, 중요한 ..

iOS/Swift 2024.01.14

함수 1편 (함수 정의 및 호출)

함수와 메서드 기본적으로 함수와 메서드는 동일, (상황이나 위치에 따라 용어가 다름) 메서드: 구조체, 클래스, 열거형 등 특정 타입에 연관되어 사용하는 함수 함수: 모듈 전체에서 사용하는 함수 함수의 정의와 호출 함수(메서드)는 재정의(오버라이드), 중복 정의(오버로드) 지원 매개변수의 타입이 다르다면? 동일한 이름으로 여러 함수 생성 가능 기본형태의 함수 정의와 사용 func 함수 이름(매개변수: 매개변수 타입) -> 반환 타입 { 실행 구문 return 반환 값 } func checkFruit(name: String) -> String { return "\(name)은 맛이 좋아요" } let apple: String = checkFruit(name:"Apple") print(apple) // Ap..

iOS/Swift 2024.01.14

싱글톤 패턴 (Singleton Pattern)

싱글톤 패턴이란? 특정 용도나 목적으로 객체를 1개만 생성 이를 공용으로 사용하는 패턴 Market의 정보를 저장하는 클래스 class MarketInfo { // static 프로퍼티로 인스턴스 생성 static let shared = MarketInfo() var title: String? var address: String? var phone: Int? // init 함수 접근제어자를 private 지정 private init() { } } Market 클래스 (싱글톤 패턴 적용) 접근 방법 class MarketInfo { // static 프로퍼티로 인스턴스 생성 static let shared = MarketInfo() var title: String? var address: String? v..

흐름 제어 (반복문)

for - in 구문 반복적인 데이터나 시퀀스를 다룰 때 사용 for - in 반복 구문의 활용 // 숫자 for num in 0...5 { print(num) } // 1 // 2 // 3 // 4 // 5 // 문자열 for letter in "Apple" { print(letter) } // A // p // p // l // e // 배열 for word in ["Apple", "Banana", "Melon"] { print(word) } // Apple // Banana // Melon ★ num, letter, word 를 임시 상수라고 하는데, 해당하는 값이 없다면? 와일드 카드 식별자 ( _ )를 사용 ★ 기본 데이터 타입의 for - in 반복 구문 사용 let myAddress: [St..

iOS/Swift 2024.01.12

흐름 제어 (switch 구문)

스위프트에서 switch 구문은 다음과 같은 특징이 있음 1. 소괄호 () 생략 가능 2. break 키워드는 선택 사항 (case 의 비교값을 비교하여 참이면 내부 코드 실행후 switch 구문 탈출) 3. switch 구문의 조건에는 다양한 타입의 값 입력 가능 4. 비교될 값이 명확한 경우 (열거형 값 등)가 아니라면? default 를 반드시 작성 switch 구문 기본 구현 let checkNumber: Int = 1000 switch checkNumber { case 0 : print("checkNumber의 값은 0입니다.") case 1...100: print("checkNumber의 값은 1부터 10 사이에 있습니다.") case 101...1000: print("checkNumber의 ..

iOS/Swift 2024.01.11

ViewController의 라이프 사이클

애플에서 제공하는 뷰 컨트롤러의 생명주기 ViewDidLoad: 뷰 컨트롤러를 만들 때 1번 호출 ViewWillAppear: 뷰가 곧 보일 때 호출되는 메서드 ViewDidAppear: 뷰가 보여진 뒤 호출되는 메서드 ViewWillDeappear: 뷰가 사라지기 직전에 호출되는 메서드 ViewDidDisappear: 뷰가 사라진 직후 호출되는 메서드 ★ 앱을 종료하는 것이 아니라 background foreground의 전환에는 뷰 컨트롤러 관련 메서드가 호출되지 않음 ★

iOS/UIKIT 2024.01.10