iOS 152

클래스

클래스 정의 class 클래스 이름 { 프로퍼티와 메서드 } 클래스를 정의하는 것은 구조체와 비슷함 단, 클래스는 상속받을 수 있기 때문에, 클래스 이름 뒤에 콜론 (:)을 붙여 부모 클래스 이름을 명시 class 클래스 이름: 부모클래스 이름 { 프로퍼티와 메서드 } FruitInfo 클래스 정의 class FruitInfo { var name: String = "" var price: Double = 0.0 } 클래스 인스턴스의 생성과 초기화 위에 정의한 FruitInfo 클래스에서는 프로퍼티의 기본값이 지정되어 있음 따라서 전달인자를 통해 초기값을 전달할 필요 없음 인스턴스가 생성 및 초기화 후 프로퍼티 값에 접근하려면? 마침표(.) 사용 구조체와 다르게 클래스는 let 으로 선언해도 내부 프로퍼티..

iOS/Swift 2024.01.17

구조체

Structures and Classes | Documentation (swift.org) Documentation docs.swift.org 구조체 정의 struct 키워드 사용 struct 구조체 이름 { 프로퍼티와 메서드 } FruitInfo 구조체 정의 struct FruitInfo { var name: String var price: Double } 구조체 인스턴스의 생성 및 초기화 구조체에 기본 생성된 이니셜라이저의 매개변수는 구조체의 프로퍼티 이름으로 자동 지정 (물론, 사용자 정의 이니셜라이저도 사용 가능) 인스턴스 생성 및 초기화된 후 프로퍼티 값에 접근하고 싶다면? 마침표(.)를 사용 구조체를 상수 let으로 선언 -> 값 변경 불가 변수 var로 선언 -> 값 변경 가능 FruitIn..

iOS/Swift 2024.01.17

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

흐름 제어 (반복문)

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