-
[Swift] 프로토콜 총정리iOS/🟠 Swift 2021. 5. 22. 15:11
[ 프로토콜 개요 ] - https://woozzang.tistory.com/44 요약: 프로토콜은 요구사항이며, 프로토콜을 채택한 형식은 요구사항을 반드시 구현해야합니다. [ 속성 요구사항 ] - https://woozzang.tistory.com/45 요약: 프로토콜에서 속성은 가변성과 상관없이 반드시 var 키워드만 올 수 있습니다. [ 메서드 요구사항 ] - https://woozzang.tistory.com/48 요약: 메서드 요구사항의 규칙은 속성 요구사항과 유사합니다. [ 생성자 요구사항 ] - https://woozzang.tistory.com/53 요약: 생성자는 클래스의 경우 상속에 대비해 구현시 `required` 키워드를 붙여야 합니다. [ 서브스크립트 요구사항 ] protocol ..
-
[iOS] - Cocoa Touch 에서 JSON 다루기iOS/🤖 App 2021. 5. 7. 23:27
1차 수정: 2021.05.25 JSON = JavaScript Object Notation 🤔 사전 지식 - JSON 이란? 단순하게 데이터를 표현하는 방법 중 하나이다. (통신 방법도 아니고, 프로그래밍 문법도 아니다. 포맷이다 !!!!) 서버와 클라이언트 간의 데이터 교환에서 일반적으로 많이 사용된다. 클라이언트가 API Request 를 보내면 서버가 응답으로 JSON 데이터를 보내준다. JSON의 포맷은 자바스크립트 객체 표기법을 따른다 key - value 쌍을 이루어 표현하며, key는 문자열이다. 문자열은 " " 쌍따옴표를 사용하여 표기한다. { } 와 내부에 key-value 로 구성된다. 즉 Swift 딕셔너리와 유사한 구조이다. JSON형식에서는 null, number, string,..
-
[Swift] - Capturing Values by Closures (값을 캡처하는 클로저)iOS/🟠 Swift 2021. 5. 7. 15:49
클로저는 스코프 밖의 값에 접근할 때 값을 캡처합니다. 클로저에는 Named clousure 과 Unnamed closure 가 있지만, 여기서는 Unnamed closure 를 가리킵니다. 참고로 Named clousure 중 global function 는 값을 캡처하지 않습니다. 값을 캡처한다는 의미는, 값의 참조를 획득한다는 뜻입니다. 따라서 참조된 값을 클로저 스코프 내부에서 변경되면, 실제 값도 변경됩니다. var count: Int = 0 print(count) // "0" var closure = { count += 1 // 스코프 외부의 값(count)에 접근하였으므로, 참조를 획득하였습니다. } print(count) // "0" :::: 클로저를 선언만 했을뿐, 호출하지는 않았습니다...
-
[Swift] 셀렉터(Selector)란?iOS/🟠 Swift 2021. 5. 2. 16:00
1차 수정 : 2021/06/16 2차 수정: 2021/07/05 3차 수정: 2021/07/08 4차 수정: 2022/02/13 안녕하세요🐶 이번 시간에는 셀렉터에 대해 알아보겠습니다. 항상 Objective-C 와 관련된 개념이 나오면 막연히 어려워지는 느낌이 드는데요.... 다행히 셀렉터는 그렇게 어려운 개념은 아닙니다~~ 그럼 시작해볼게요!!🔥 셀렉터는 메서드를 식별할 수 있는 고유한 이름입니다. Swift에서는 struct 타입이며 컴파일 타임에 지정됩니다. " A selector is the name used to select a method to execute for an object, or the unique identifier that replaces the name when the so..
-
[Swift] - defer 문이란?iOS/🟠 Swift 2021. 4. 29. 17:36
선언된 블록의 실행을 스코프 종료 직전까지 연기시키는 키워드 "호출 시점과 실행 시점이 다르다" 용도 : 주로 코드에서 사용했던 자원을 정리할 때 사용한다. 예시) 파일 처리 에서 파일 닫기 func processFile(path: String) { let file = FileHandle(forReadingAtPath: path) // Process if path.hasSuffic(".jpg") { return // closeFile()이 호출되지 않음 } file?.closeFile() } 💡해결 defer 문 안에 closeFile 을 구현해 놓으면 함수 반환 직전에 실행을 보장할 수 있다. func processFile(path: String) { let file = FileHandle(forRea..
-
[Swift] - 상속 (Inheritance)iOS/🟠 Swift 2021. 4. 21. 11:35
상속 상속은 클래스만의 특징으로 서브클래스는 수퍼클래스의 메서드나 프로퍼티등을 상속받아 사용할수 있습니다. super 키워드 없이 이름만으로 접근할 수 있습니다. 또한 final 키워드로 정의된 요소는 상속받지 못합니다. 상속받은 수퍼클래스의 요소를 재정의를 할 때는 명확히 override 키워드로 명시해주어야 합니다. 서브클래스에서 재정의를 했다면, 수퍼클래스의 원본 요소는 super 키워드로 접근할 수 있습니다. 재정의 중 프로퍼티, 프로퍼티 감시자 부분은 규칙을 제대로 알고 가야 합니다. 메서드 재정의, 서브스크립트 재정의는 간단하기 때문에 생략하였습니다 프로퍼티 재정의 저장 프로퍼티로 재정의 할수는 없습니다. 읽기과 쓰기 가능, 즉 {get set} 으로 구현된 연산 프로퍼티의 프로퍼티 감시자를 ..