전체 글 87

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

SwiftUI - @Binding

@Binding - SwiftUI에서 사용되는 프로퍼티 래퍼(wrapper) 중 하나로, 데이터의 양방향 바인딩을 생성하는 데 사용 - '@Binding' 을 사용하면 부모 뷰로부터 전달된 데이터를 자식 뷰에서 수정할 수 있음 - 보통 부모 뷰에서 자식 뷰로 데이터를 전달할 때, 데이터는 일방향을 전달됨 부모 뷰에서 자식 뷰로 데이터를 전달하고 나면, 자식 뷰에서 그 데이터를 수정하여 다시 부모 뷰로 전달하기 위해선 추가 작업이 필요 → '@Binding'을 사용하면 부모 뷰와 자식 뷰 간의 데이터 흐름을 양방향으로 만듦 즉, 부모 뷰로부터 받은 데이터를 자식 뷰에서 변경하면 부모 뷰에서도 자동 변경 @State 관련 게시물 코드를 이용함 2023.08.19 - [분류 전체보기] - SwiftUI - @..

SwiftUI 2023.08.25

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

Swift - mutating

mutating - 구조체(struct), 열거형(enum) 내부의 메서드가 해당 인스턴스의 속성을 변경할 수 있도록 허용하는 데 사용 구조체와 열거형은 값 타입!! 클래스는 참조 타입이므로 클래스의 메서드는 기본적으로 속성을 수정할 수 있음 그러나 값 타입인 구조체와 열거형은 메서드에서 인스턴스의 속성을 변경할 때는 'mutating' 키워드를 사용해야 함! Class의 메서드 내 프로퍼티 변경 import UIKit class Friend { var name : String // class의 프로퍼티의 name 값을 변경하는 메서드 func changeName(newName : String){ self.name = newName } init(_ name : String){ self.name = nam..

Swift 2023.08.22

Swift - DispatchQueue

DispatchQueue - Grand Central Dispatch (GCD)라는 다중 스레딩 라이브러리를 사용하여 멀티스레딩 작업을 조율하고 관리하는데 사용되는 개념 - 즉, 작업 항목의 실행을 관리하는 클래스 - 일반 스레드 보다 쉽고 효울적으로 코드를 작성할 수 있음 - 보통 서버에서 데이터를 받고 이미지 동영상을 외부에서 다운로드 및 처리할 때 CPU 사용량이 많아 처리를 메인 스레드가 아닌 별도의 스레드에서 처리한 뒤 메인 스레드에 결과만 전달하여 CPU를 효율적을 사용 가능 종류 1. Serial Queue - 작업들이 순차적으로 실행되는 대기열 - 한 번에 하나의 작업만 실행되며, 한 작업이 끝나야 다음 작업이 실행됨 2. Concurrent Queue - 여러 작업이 동시에 실행될 수 있..

Swift 2023.08.22

SwiftUI - @State

@State - SwiftUI에서 사용되는 프로퍼티 래퍼(wrapper) 중 하나로, 데이터의 변경 사항을 추적하고 뷰를 업데이트하는 데 사용 - 상태 변화에 따라 자동으로 뷰를 갱신하는데 중요한 역할을 수행 - @State로 선언한 변수의 값이 변경되면 SwiftUI는 자동으로 해당 변수가 속한 뷰의 내용을 다시 렌더링하여 화면에 반영 - 뷰와 데이터가 항상 동기화되어 사용자 인터페이스를 갱신하는 데 편리함 제공 선언 방법 @State private var myValue: DataType = initialValue 사용 예) 저번 게시물에서 사용했던 코드를 이용하여 @state를 사용하겠음 참고 → 2023.08.17 - [분류 전체보기] - SwiftUI - 튜토리얼 import SwiftUI str..

SwiftUI 2023.08.19

SwiftUI - 튜토리얼

SwiftUI - 사용자 인터페이스(UI)를 구축하기 위한 프레임워크 - UIKit, AppKit과 같은 UI 프레임워크보다 더 간결하고 직관적인 코드 작성을 지원하며, 코드의 재사용성을 증가시킴 기본 화면 화면을 그리는 코드 struct Tutorial: View { var body: some View { Text("Hello, World!") } } - 'Tutorial' 이라는 구조체를 선언 - 이 구조체는 'View' 프로토콜을 따르는 SwiftUI 뷰 - 'body' 리는 컴퓨티드 프로퍼티를 선언 - 이 프로퍼티는 실제로 뷰의 내용을 반환하는 역할 - 'some View' : 반환 타입으로 모든 유형의 SwiftUI 뷰를 의미 * 컴퓨티드 프로퍼티 : 값을 저장하는 것이 아니라 계산에 의해 값을..

SwiftUI 2023.08.17