Swift 71

Swift - 6. 서브 클래싱과 익스텐션 개요

상속, 클래스, 하위 클래스 클래스에 어떤 특성을 정의하고 그 클래스를 상속받은 다른 클래스를 생성 부모 클래스의 모든 기능을 상속받으며, 자신의 기능을 추가 클래스 상속을 통하여 클래스 계층 구조를 만듦 계층 구조의 최상위 클래스 : 베이스 클래스 (루트 클래스) 상속 받은 클래스 : 하위 클래스 (자식 클래스) 하위 클래스가 상속받은 클래스 : 부모 클래스 (상위 클래스) 하위 클래스는 반드시 단 한 개의 부모 클래스만 둘 수 있음 → 단일 상속 class BankAccount { var accountBalance : Float = 0 // 계좌에 남은 잔고 var accountNumber : Int = 0 // 계좌 번호 var fees : Float = 25.00 // 은행 수수료 // 초기화 i..

Swift 2023.12.28

Swift - 5. 객체 지향 프로그래밍 기초

객체(인스턴스)란 소프트웨어 애플리케이션을 구축하는 블록으로 쉽게 사용하고 재사용 할 수 있는 독립적인 기능 모듈 작업을 수행하기 위한 객체나 인스턴스에서 접근되고 호출되는 속성(프로퍼티)과 함수(메서드)로 구성 객체를 구성하는 데이터 변수와 함수를 포괄적으로 클래스 멤버라고 함 클래스 객체가 생설될 때의 모습 정의 메서드, 프로퍼티 정의 클래스 선언 새로운 스위프트 클래스를 선언할 때, 새롭게 만드는 클래스가 어떤 부모 클래스에서 파생되었는지 지정 클래스에 포함할 프로퍼티와 메서드 정의 // 기본 구문 class 클래스 이름 : 부모 클래스 { // 프로퍼티 // 인스턴스 메서드 // 타입 메서드 } 프로퍼티 : 클래스 내에 포함될 변수나 상수 정의 인스턴스 메서드, 타입 메서드 : 클래스에서 호출되는..

Swift 2023.12.27

Swift - 4. 함수, 메서드, 클로저 개요

함수 특정 작업을 수행하기 위해 호출할 수 있게 이름 붙여진 코드 블록 매개 변수(parameter) vs 인자(argument) 매개변수 : 함수가 호출될 때 받게 되는 값 인자 : 실제로 함수가 호출되고 값이 전달되는 시점에서 인자로 부름 메서드 특정 클래스나 구조체 또는 열거형과 연관된 함수 클래스 내 함수 선언 → 메서드 특별한 언급 없으면 함수 설명과 규칙, 동작이 모두 메서드에도 동일하게 적용됨 함수 선언 방법 함수명, 매개변수, 반환 결과 타입의 조합 → 함수 시그니처 func 함수명 (매개변수 이름 : 매개변수 타입, ... ) -> 반환 결과 타입 { // 함수 코드 } // 매개변수로 문자열 하나와 정수 하나를 받으며 문자열 결과를 반환하는 함수 func buildMessageFor(n..

Swift 2023.12.26

Swift - 3. 제어 흐름

break 현재 반복문에서 빠져나와 반복문 다음의 코드로 이동하여 실행 continue 반복문의 나머지 코드를 건너뛰고 반복문의 처음으로 다시 돌아감 guard 구문 불리언 표현식을 포함, true일 때만 guard 구문 다음에 위차한 코드가 실행됨 false일 때 수행될 else 절을 반드시 포함해여 함 else 절의 코드는 반드시 현재의 코드 흐름에서 빠져나가는 구문(return, break, continue, throw)을 포함해야 함 else 블록은 자기 자신을 반환하지 않는 다른 함수나 메서드 호출 가능. guard else{ // 조건문이 false일 때 실행될 코드 } // 조건문이 true 일 때 실행될 코드 func multiplyByTen(value : Int?){ guard let n..

Swift 2023.12.26

Swift - 1. 데이터 타입

정수형 데이터 타입 부호 있는 정수(signed) : 양수, 음수, 0 값 저장 부호 없는 정수 (unsigned) : 양수, 0 값 저장 정수 지원 8비트, 16비트 ,32비트, 64비트 지원 Int8, Int16, Int32, Int64 부호 없는 비트 : UInt8, UInt16, UInt32, UInt64 → Int 데이터 타입 사용 권장 : 코드가 실행되는 플랫폼에 맞는 정수 크기를 사용 모든 정수형 데이터 타입은 해당 데이터 타입이 지원하는 최댓값, 최솟값을 알 수 있도록 범위 속성을 가짐 print("Int32 Min = \(Int32.min) Int32 Max = \(Int32.max)") // Int32 Min = -2147483648 Int32 Max = 2147483647 부동소수점 ..

Swift 2023.12.24

Swift - Dictionary

Dictionary - 데이터를 키 - 값 쌍의 형태로 저장하고 관리 - 배열과 비슷한 목적의 작업을 하지만 순서가 없음 - Dictionary에 저장된 각 항목은 값을 참조하고 접근하는 데 사용되는 키와 연결되어 있음 - Dictionary의 키는 해시 가능한 타입이어야 함. 유일한 값 - 기본타입(String, Int, Double, Bool 등)은 해쉬 가능하므로 키로 사용 가능 - Optional, Array, Set도 키로 가능 초기값을 설정하지 않은 Dictionary // key 값은 String 형태, value 값은 Int 형태인 빈 Dictionary 생성 var studentScores = [String : Int]() // var studentScores : Dictionary = ..

Swift 2023.09.02

Swift - HIG (Human Interface Guide)

HIG (Human Interface Guide) - 애플의 소프트웨어 제품군인 iOS 및 macOS의 디자인과 사용자 경험을 가이드하는 문서 집합 - 이 가이드라인은 애플 제품의 사용자 인터페이스(UI)를 디자인하고 개발할 때 지켜야 할 디자인 원칙과 권장 사항 제시 https://developer.apple.com/design/human-interface-guidelines/ Human Interface Guidelines | Apple Developer Documentation The HIG contains guidance and best practices that can help you design a great experience for any Apple platform. developer.ap..

Swift 2023.08.28

Swift - Extension (확장)

Extension (확장) - 기존의 클래스, 구조체, 열거형 또는 프로토콜의 기능을 확장하거나 추가할 수 있는 기능 - 기존 타입의 코드를 수정하지 않고도 새로운 기능을 추가하거나 수정 가능 - 소스 코드의 모듈성을 높이고 코드의 재사용성과 가독성을 향상 시키는 방법 1. 새로운 계산 프로퍼티 추가 - Extension은 저장 프로퍼티는 추가할 수 없으며 오로지 '연산 프로퍼티'만 추가 가능 - extension은 저장 프로퍼티 추가 불가능 import UIKit extension Int { var squared : Int { return self * self } } let num = 10 print(num.squared) // 100 - extension을 사용하여 기존 타입에 계산 프로퍼티 추가 가..

Swift 2023.08.24

Swift - Class, Struct, Enum

Swift - 객체 지향 프로그래밍 언어로 클래스(class), 구조체(struct), 열거형(enum)과 같은 다양한 데이터 타입을 제공하여 코드를 구조화하고 모듈화하는 데 도움을 줌 1. 클래스 (Class) - 클래스 내에 변수나 상수(Properties)와 메서드(Methods)를 정의하여 클래스를 구현 - Swift에서는 객체라는 용어 대신 인스턴스라는 용어를 사용 - 클래스의 인스턴스를 생성할 때, 초기화 메서드(Initializer, 생성자)를 사용하여 속성의 초기값 설정 - 단일 상속만 가능 - iOS 프레임워크에서 프로그래밍할 때 주로 클래스를 많이 사용 - 참조 타입(= reference type)으로 분류 됨 → 클래스 인스턴스를 변수나 상수에 할당할 때, 데이터의 복사가 아닌 인스턴..

Swift 2023.08.23