어떤건 required init에 구현해야하고, 어떤건 super.init에 구현되어야 하는데 이유가 궁금해졌습니다. required init 먼저 required init은 단어 그대로 '필수적인' init 인데, 사용하는 방법은 여러가지 방법이 있습니다. 하위클래스 required init() 생략 상위클래스를 상속받는 하위 클래스 예시 코드를 먼저 봅시다. 하위클래스(ChildClass)에서 requried init() 메서드 호출이 없어도 자동적으로 상속받는 상위클래스(ParentClass)의 required init을 호출하게 되어 10이 출력됩니다. 하위 클래스 required init() 구현 그럼 하위클래스의 required init() 메서드를 호출하면 어떻게 될까? 하위클래스(Child..
오늘은 이미지 캐시에 대해 공부해 보려고 합니다. 보통 이미지의 경우 크기가 작지 않기 때문에 불러오는데 시간이 걸리게 됩니다. 컬렉션뷰, 테이블뷰 에서 스크롤을 하게되면 데이터를 다시 불러오게되어 사진의 경우 아래처럼 뒤늦게 바뀌는걸 볼 수 있습니다. 기존에 있던 날씨 이미지 → 새로 받아오는 이미지로 뒤늦게 바뀌는게 보이시나요? 문제를 해결하기 위해선 캐시처리에 대해 알아야 하는데요. 과제때는 급하게 처리하느라 코드 복붙이었는데 개념부터 차근차근 알아봅시다 🙌 캐시 - Cache 기기 안의 임시저장소를 뜻합니다. 임시 저장소를 통해 이미지를 저장해 뒀다가 보여질때가 되면 저장했던 이미지를 그대로 가져와 뿌려줍니다. Cache의 종류 Memory cache (휘발성) 기기를 끄면 저장된 데이터가 사라집..
고차함수에서 피해가고 싶었던 reduce ... 요즘 알고리즘 문제를 풀면서 모르면 안되겠다는 생각이 들어 한번 파보려고 합니다. 👊 공식문서 컨테이너의 요소들을 결합한 결과를 반환합니다. 예제를 통해서 보시죠!! 예제 1 let numbers: [Int] = [1, 2, 3, 4] var sum = numbers.reduce(initialResult: Result>, Result(Result, Int) throws -> Result(_ partialResult: Result, Int) throws -> Result) 먼저 initialResult, nextPartialResult 부분을 볼게요. initialResult: 결합을 시작하기전 초기 값을 지정 합니다. nextPartialResult: 요..
서브스크립트 (Subscripts) 클래스, 구조체, 열거형에서 스크립트를 정의해 사용할 수 있습니다. 서브스크립트를 활용하면 추가적인 메소드 없이 특정 값을 할당하거나 가져올 수 있습니다. 예를들어, Array 인스턴스의 특정 요소에 someArray[index] 문법으로, Dictionary 인스턴스의 특정 요소에 someDictionary[key] 이런식으로 접근할수 있습니다. 하나의 타입으로 여러 서브스크립트를 정의할 수 있으며, 오버로드(Overload)도 가능합니다. (질문) 또한 필요에 따라 여러 인자 값을 사용할 수 있습니다. 서브스크립트 문법 (Subscripts Syntax) 인스턴스 메소드 문법과 연산 프로퍼티 문법과 유사합니다. 다만, 서브스크립트에선 읽기-쓰기(read-write)..
상수 및 변수 (let, var) 상수와 변수는 사용하기 전에 선언해야 합니다. 상수 let 키워드로 상수선언 한번 선언되면 변경할 수 없습니다. let name = "peppo" name = "swift" // ( X ) error 변수 var 키워드로 변수선언 변수는 변경 가능합니다. var age = 200 age = 100 정수 (Integers) Int 키워드로 사용하며, 32비트 플랫폼 - Int32 64비트 플랫폼 - Int64 를 사용합니다. var number = 20 var number = -20 UInt 부호 ( - )가 없는 정수 유형이 '특별히' 필요한 경우에만 사용하길 권장. var number: UInt = 10 // (O) var number: UInt = -10 // (X)..
연산자 용어 단항 연산자 -a !b c! 이항 연산자 2 + 3 삼항 연산자 a ? b : c // a가 true면 b를 return // 아니면 (else) c를 return 할당 연산자 상수, 변수에 모두 사용 가능하며, 값을 초기화 시키거나 변경 합니다. let b = 10 var a = 5 a = b // a 값은 10 여러 값을 한번에 할당 할 수도 있습니다. let (x, y) = (1, 2) // x 값은 1, y 값은 2 사칙 연산자 덧셈 ( + ), 뺄셈 ( - ), 곱셈( * ), 나눗셈( / ) 나머지 연산자 a % b 와 같이 나머지 연산을 지원합니다. 11 % 2 // 1 8 % 2 // 0 단항 음수 연산자 let three = 3 // 3 let minusThree = -t..
메소드에 이어서 프로퍼티에 대해 공부를 해봅시다. 오늘도 프로퍼티 (Properties) 늘 그래왔듯 정의 부터 보죠! 프로퍼티는 클래스(class), 구조체(struct), 열거형(enum)과 관련한 값 입니다. 종류로는 저장 프로퍼티 와 연산 프로퍼티 등이 있습니다. 프로퍼티에는 대표적으로 두가지 종류가 있어요. 이외에도 타입 프로퍼티 등 더 있긴하지만 오늘은 저장 프로퍼티를 먼저 보려고 합니다. 하나씩 파헤쳐 봅시다! 저장 프로퍼티 (Stored Properties) 이름 그대로 값을 저장하고 있는 프로퍼티 입니다. let(상수) 또는 var(변수) 키워드를 선언해서 사용할 수 있어요. 예제를 보면서 해볼까요? 눈으로 보는것보단 Playground에 같이 따라하는게 더 이해가 잘갑니다 :) 저장프로..
가장많이 보았고 가장많이 헷갈렸던 인스턴스, 메서드 에 대해 정리 해 보려 합니다 그동안 어림짐작해서 이건 메서드겠구나 했는데 정확히 알고 넘어가야겠다!!! 메서드 (Methods)특정 타입의 클래스, 구조체, 열거형과 관련된 함수 를 메서드라 합니다.함수 , 이것은 함수였다.메소드에는 인스턴스 메서드, 타입 메서드 가 있어요. 인스턴스 메서드 ( Instance Methods )인스턴스 메서드는 특정 클래스(class), 구조체(struct), 열거형(enum)의 인스턴스에 속한 메서드 입니다. 아래 코드 처럼요!class Counter { //
프로젝트를 처음 만들어봤을때 가장먼저 맞이해주는 override 많이들 보셨죠 ? 아무 생각없이 넘어갔는데 오늘은 override에 대해 한번 파봅시다!! 오버라이드 (override) 일단 공식문서의 내용을 요약해서 먼저 한번 볼까요 상위클래스로부터 상속받은 메서드, 프로퍼티들을 하위 클래스에서 재정의하는 것 살짝 알듯 말듯 하네요. 말보단 코드로 먼저 보시죠 !! 눈으로 보는것 보다 Playground에 따라 쳐보시면 이해가 더 잘갑니다 먼저 Student라는 class를 만들어볼게요. class Student { func sayHello() { print("안녕 나는 학생이야") } } 호출을 하면 어떻게 나오는지 볼까요 ? let student = Student() student.sayHello(..
Extension? 스위프트의 강력한 기능 중 하나로. 기존 클래스, 구조체, 열거형 타입에 새로운 프로퍼티, 메서드, 이니셜라이저 등을 추가하여, 소스 코드에 접근하지 못하는 타입들도 확장해서 사용할 수 있다. 사용시 extension 이란 키워드를 사용하여 확장한다. 선언 extension 확장할 타입 이름 (e.g. Int) { // 타입에 추가될 새로운 기능 구현 } // 또는 extension 확장할 타입 이름: 프로토콜1, 프로토콜2 { // 프로토콜 요구사항 구현 } ⭐️ 확장에 프로토콜 추가 아래와 같은 예시를 보면 struct Language { let name: String } let sweetft: Language = .init(name: "sweetft") let swift = sw..
- Total
- Today
- Yesterday
- iOS error
- swift reduce
- removeLast()
- Combine: Asynchronous Programming with Swift
- 원티드 프리온보딩
- Swift ModernRIBs
- RIBs tutorial
- swift programmers
- Swift joined
- swift 고차함수
- CS 네트워크
- Swift 알고리즘
- swift (programmers)
- swift protocol
- swift property
- ios
- 2023년 회고
- Swift 프로퍼티
- Swift joined()
- Swift Error Handling
- Swift
- Swift init
- RTCCameraVideoCapturer
- Swift 내림차순
- Swift final
- Swift 프로그래머스
- Class
- Swift inout
- Swift Leetcode
- Swift RIBs
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |