일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
- 스파르타코딩캠프
- Error installing cocoapods
- n번째 원소까지
- 스페인어
- Break
- 프로그래머스 암호 해독
- 프로그래머스
- 프로그래머스 배열 만들기1
- array
- 프로그래머스 문자열 정렬하기 (1)
- 프로그래머스 자동커밋
- 객체지향
- ruby설치
- 주사위 게임1
- 프로그래머스 최댓값 만들기(2)
- 프로그래머스 주사위 게임1
- cocoapods 설치 오류
- 스파르타 코딩클럽 내일배움캠프
- 조건에 맞게 수열 변경하기 3
- 프로그래머스 n번째 원소까지
- 프로그래머스 조건에 맞게 수열 변경하기 3
- swift
- 문자열 정렬하기 (1)
- 프로그래머스 n의 배수 고르기
- 배열 만들기1
- continue
- 프로그래머스 문자열 붙여서 출력하기
- Til
- 연산자
- 문자열 붙여서 출력하기
- Today
- Total
목록Dev/SWIFT (79)
dev._.note
📌 스레드(Thead)란? 스레드(Thread)는 동시에 여러 작업을 수행하기 위해 사용되는 실행 단위로써 스레드를 사용하면 여러 작업을 병렬로 실행하여 프로그램의 성능을 향상할 수 있음. 스레드의 개념 스레드는 각각의 독립적인 실행 경로를 가지며, 동시에 여러 코드 블록을 실행할 수 있음. 각 스레드는 자신만의 스택 영역을 가지고 있으며, 프로그램의 다른 부분과 독립적으로 실행. 스레드의 동작 방식 메인 스레드(Main Thread) : 모든 iOS 앱은 메인 스레드에서 실행. 사용자 인터페이스(UI) 이벤트 처리, 그리기 작업 등을 메인 스레드에서 처리. 백그라운드 스레드(Background Thread) : 메인 스레드 외의 스레드를 백그라운드 스레드라고 함. 복잡한 계산, 다운로드 등의 작업은 백..
📌 프로토콜(Protocol) 프로토콜이란? 특정 역할(기능)을 하기 위한 메서드, 프로퍼티, 기타 요구사항의 청사진을 정의한 것. 프로토콜은 기능을 정의하고 제시할 뿐, 스스로 기능을 구현하지 않음. 구조체/클래스/열거형은 특정 프로토콜을 채택(adopted)해서 그 역할을 위한 요구사항을 구현. 어떤 타입이 어떤 프로토콜의 요구사항을 따르면, '해당 프로토콜을 준수한다(conform)'라고 표현. 스위프트에서 프로토콜은 완전한 하나의 타입으로 사용. 파라미터나 리턴타입으로 사용 가능 프로퍼티, 변수, 상수의 타입으로 사용 가능 배열 등 컨테이너 요소의 타입으로 사용 가능 protocol 프로토콜이름 { 프로토콜 정의 } 프로퍼티 요구사항 프로퍼티와 타입 프로퍼티 요구 가능 프로퍼티 요구사항은 항상 v..
ARC란? Swift의 ARC(Automatic Reference Counting)는 메모리 관리 기법 중 하나로, 객체나 인스턴스가 참조되는 횟수를 추적하여 메모리에서 해제할 시점을 결정. 객체가 생성될 때마다 참조 횟수가 1 증가하고, 해당 객체를 참조하는 다른 객체나 변수가 없어지거나 더 이상 사용되지 않을 때 참조 횟수가 1 감소. 참조 횟수가 0이 되면 해당 객체는 메모리에서 해제됨. ARC의 작동 방식 객체 생성: 객체가 생성되면 참조 횟수가 1 증가. 객체 참조: 객체를 다른 변수나 상수에 할당하면 해당 객체의 참조 횟수가 1 증가. 참조 해제: 객체의 참조가 없어지면(참조하는 변수나 상수가 없거나 **nil**이 할당되면) 참조 횟수가 1 감소. Zeroing Weak References:..
📌 실패 가능한 상황과 예외 처리 에러처리 프로그램에서 에러가 발생한 상황에 대응하고 이에 대응하는 과정. Swift에서는 런타임에 에러가 발생한 경우, 이를 처리를 지원하는 클래스를 제공. Error Error는 던져질 수 있는 오류 값을 나타내는 유형. Error 프로토콜을 채택하여 사용자 정의 에러를 정의하여 사용 가능 참고 자료: https://developer.apple.com/documentation/swift/error enum VendingMachineError: Error { case invalidSelection case insufficientFunds(coinsNeeded: Int) case outOfStock } 📌 throws와 do-catch 문 throw와 throws thro..
클로저 (Closure) 클로저는 사용자의 코드 안에서 전달되어 사용할 수 있는 로직을 가진 중괄호"{}" 구분된 코드의 블럭. 쉽게 말하면 클로저는 이름이 없는 함수. 따라서 함수는 이름이 있는 클로저라고 할 수 있음. 클로저를 사용한다면 따로 함수를 만들어야 할 불편함 없이 즉석에서 함수를 만들 수 있음. 스위프트의 클로저와 같은 것들 C, C++, Objective-C 의 block Java의 Lambda funtion C#의 Delegates 클로저의 표현 { (매개변수 이름 : 매개변수 타입) -> 반환타입 in 클로저 표현식 코드 } 함수와 굉장히 비슷한 형태를 띄고 있으며 가장 큰 차이점은 이름이 유무임. 클로저에서는 함수처럼 이름이 없음. 인자들을 넣을 수 있고 반환타입까지 설정가능. 그리..
📌 guard문이란 guard 문은 뭔가를 검사하여 그 다음에 오는 코드들을 실행할지 말지 결정하는것, guard 문에 주어진 조건문이 거짓일 때, 여기에 달려 있는 코드블럭이 실행. 조건식에 이 함수가 수행하는데 필요한 조건을 그대로 나타낸다는 점에서 if문에서 부정적인 조건식으로 표현하는것보다 가독성이 높은 장점. if 문과 다르게 else를 항상 달아야 함. 아래 함수는 nil 입력을 가드함. 만일 입력이 nil이면 guard문은 else 절을 수행하고 다른 구문이 수행되기 전에 함수를 return함. guard 조건문 else { 조건문이 false일 떄 실행 } 조건문이 true일 떄 실행 💡 guard문을 사용하여 과도한 들여쓰기 막기 guard문은 다른 언어에 거의 없고 swift언어에만 있..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/EhMOM/btsBDOhj65h/PkVq6QmADkQ3nL2UZgdKEk/img.png)
키오스크 프로그래밍 과제 ## 진행상황 class별로 따로 파일을 빼서 정리해 줌. 하단코드로 text들 사이에 간격을 패딩 값으로 조절함. 각 class마다 적용했다가 부모 class인 common에만 작성 후 상속받은 자식 class들이 재사용하는 방법으로 수정함. 부모 class common class Common { let num : Int var name : String let price : Double let info : String init(num: Int, name: String, price: Double, info: String) { self.num = num self.name = name self.price = price self.info = info } func displayInfo(..
📌 접근 제한자 접근 제한자는 다른 소스 파일이나 모듈의 코드에서 코드 일부에 대한 접근을 제한. [제약이 적음] open < public < internal < fileprivate < private [제약이 많음] open : 모든 소스 파일에서 해당 level 접근 가능 + 모든 곳에서 서브클래싱 가능 public : 모든 소스 파일에서 해당 level 접근 가능 + 같은 모듈 내에서만 서브클래싱 가능 internal : 같은 모듈 내에서만 접근 가능 fileprivate : 같은 소스파일 내에서만 접근 가능 private : 클래스 내부에서만 접근 가능 접근 제한자를 작성하지 않으면 internal로 판단 상위 요소보다 하위 요소가 더 높은 접근 수준을 가질 수 없음. private struct ..