일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 프로그래머스 암호 해독
- Break
- 프로그래머스 n번째 원소까지
- 프로그래머스
- swift
- 연산자
- ruby설치
- Error installing cocoapods
- 프로그래머스 문자열 정렬하기 (1)
- 프로그래머스 자동커밋
- 조건에 맞게 수열 변경하기 3
- 프로그래머스 배열 만들기1
- 프로그래머스 조건에 맞게 수열 변경하기 3
- 문자열 정렬하기 (1)
- continue
- 프로그래머스 최댓값 만들기(2)
- 스파르타 코딩클럽 내일배움캠프
- array
- 문자열 붙여서 출력하기
- n번째 원소까지
- 스파르타코딩캠프
- 주사위 게임1
- Til
- 객체지향
- 배열 만들기1
- 스페인어
- cocoapods 설치 오류
- 프로그래머스 주사위 게임1
- 프로그래머스 n의 배수 고르기
- 프로그래머스 문자열 붙여서 출력하기
- Today
- Total
목록전체 글 (312)
dev._.note
ARC란? Swift의 ARC(Automatic Reference Counting)는 메모리 관리 기법 중 하나로, 객체나 인스턴스가 참조되는 횟수를 추적하여 메모리에서 해제할 시점을 결정. 객체가 생성될 때마다 참조 횟수가 1 증가하고, 해당 객체를 참조하는 다른 객체나 변수가 없어지거나 더 이상 사용되지 않을 때 참조 횟수가 1 감소. 참조 횟수가 0이 되면 해당 객체는 메모리에서 해제됨. ARC의 작동 방식 객체 생성: 객체가 생성되면 참조 횟수가 1 증가. 객체 참조: 객체를 다른 변수나 상수에 할당하면 해당 객체의 참조 횟수가 1 증가. 참조 해제: 객체의 참조가 없어지면(참조하는 변수나 상수가 없거나 **nil**이 할당되면) 참조 횟수가 1 감소. Zeroing Weak References:..
📌 예외처리 일반 try 말고도 try?와 try!를 학습함. try? : do - catch 구문 없이도 사용이 가능하고 에러 발생시 nil값을 반환. 에러가 발생하지 않으면 리턴 값의 타입은 옵셔널로 반환. try! : 에러가 발생을 하면 앱이 강제 종료되며 옵셔널이 언래핑된 값이 리턴. 오류가 발생하지 않는다는 보장아래 사용해야함. 📌 새로 알게 된 부분 ∙ 예외처리 💡 새로 알게 된 부분 ▶︎ 예외처리
📌 실패 가능한 상황과 예외 처리 에러처리 프로그램에서 에러가 발생한 상황에 대응하고 이에 대응하는 과정. 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언어에만 있..
📌 과제 3단계까지 진행완료했다. 메인메뉴 => 세부매뉴(돌아가기) => 메인메뉴 => 종료 class간의 상속을 사용해서 각각 클래스마다 적용해줬던 값을 부모 클래스에만 적용해서 코드가 간결해졌다. xcode에서 빌드를 하면 xcode가 종료되는 이슈가 있었다. 구글링을 통해 자바와 오라클을 지워봤지만 아직 해결하지 못했다. 💡 과제진행 ▶︎ 키오스크 과제
![](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(..
키오스크 프로그래밍 과제 Lv2 필요한 클래스들을 설계해요 (버거, 아이스크림, 음료, 맥주, 주문, 공통 등) 클래스들의 프로퍼티와 메소드를 정의해요 메소드를 이용해서 Lv1의 코드를 개선해요 Lv3 Lv2에서 설계한 클래스들을 상속 관계를 가지도록 변경해요 (Burger도 부모 클래스를 가질 수 있을지 고민해요!) 하나의 객체 리스트로 모든 메뉴들을 관리하도록 수정해요 (List) ## 선택 구현 사항 Lv4 숫자를 입력해야하는데 문자를 입력했을때 다시 입력할 수 있도록 예외를 처리해요 현재 잔액과 가격을 비교해서 구매 가능한 상태를 정의해요 (해당 기능을 담당하는 클래스를 새로 정의하셔도 됩니다.) Lv5 특정 작업이 종료된 후, 3초뒤에 다른 작업을 수행할 수 있도록 코드를 작성해요 결제시 현재 ..