분류 전체보기
-
as 연산자 / is 연산자Swift/swift 문법 2023. 5. 26. 19:36
상속은 필요한 데이터를 추가하는 메모리 구조 undergraduate 타입은 person을 상속받는다. 메모리 구조 -> person에서 undergraduate의 프로퍼티가 추가된다. is 연산자 : 특정 타입이 맞는지 확인한다. 반환값: Bool type as 연산자 : 인스턴스 타입의 힌트를 변경하는 연산자. 다운캐스팅에 성공할 경우, 접근가능한 항목(상속받은 클래스의 프로퍼티)의 수를 늘려준다. let person: Person = Undergraduate() -> Person: 변수에 정의된 타입 Undergraduate: 실제 메모리 공간의 인스턴스 Person type보다 Undergraduate type 항목의 개수가 더 많다. 하지만 현재 Person type으로 person변수에는 정의..
-
비동기 프로그래밍Swift 2023. 5. 14. 08:55
1) 비동기 처리는 왜 필요할까? : 메모리 순차적으로 실행될 필요가 없는 작업 쓰레드 : CPU의 손, 주방 화구에 불을 올림 (작업을 실행함) 여러 스레드에서 처리 하는 것: 동시적 처리 (concurrency) 2) 비동기와 동시의 개념 동기(Sync) 비동기(Async) 기준 일이 끝나는 것을 기다리는가 / 기다리지 않는가? 작업의 종료에는 관심이 없다. 실행중인 작업의 종료 기다린다 기다리지 않는다 코드 DispatchQueue.global.sync{ } DispatchQueue.global.async{ } 직렬 동시(비동기 처리) 기준 여러 스레드를 쓰는가? / Queue의 작업 처리 방식 스레드 사용 개수 1개의 스레드 사용 여러개의 스레드 사용 일의 성격 일을 순차적으로 실행 여러개의 메모..
-
Protocol의 메모리 주소와 프로토콜의 확장 구현시 실행 메서드Swift/swift 문법 2023. 5. 13. 20:58
:Protocol은 자격증 -> 어떤 구조체나 클래스도 채택 가능하다. 테이블과 메서드 주소가 정해져있지 않고, 채택해서 구현할 때 테이블이 만들어진다. 클래스에서 직접 구현한 메서드는 확장에서 구현한 메서드보다 우선순위가 생긴다. protocol Remote{ func turnOn() func turnOff() } extension Remote { func turnOn() {print("리모컨 켜기")} func turnOff() {print("리모컨 끄기")} func doAnother() { print("리모컨 다른 동작") } } struct LgTv:Remote { func turnOn() {print("TV 켜기")} func turnOff() {print("TV 끄기")} func doAno..
-
문자열: 출력 형식 지정자Swift/swift 문법 2023. 5. 8. 23:10
String(format: String, arguments: CVar) -> String()은 생성자다. (타입 변환 X) String(format: "%.4f", str) -> 소수 4번째 자리까지 반환. String(format: "%03d", str) %d -> 정수 -> 소수 3번째 자리까지 반환. (앞에 0 포함) String(format: "value: %@", str) @ -> 이 자리에 문자열을 넣을 것이다. 세자리수마다 콤마 넣기 numberFormatter.numberStyle = .decimal numberFormatter.string(for: price)
-
프로그래밍 패러다임의 필요성Q 2023. 5. 5. 17:45
패러다임이란? 패러다임(영어: paradigm)은 어떤 한 시대 사람들의 견해나 사고를 근본적으로 규정하고 있는 테두리로서의 인식의 체계, 또는 사물에 대한 이론적인 틀이나 체계를 의미하는 개념이다. - 위키피디아 프로그래밍에서 패러다임이란? 프로그래밍 패러다임은 프로그래머에게 프로그래밍의 관점을 갖게 해 주고, 결정하는 역할을 한다. 예를 들어 객체지향 프로그래밍은 프로그래머들이 프로그램을 상호작용하는 객체들의 집합으로 볼 수 있게 하는 반면에, 함수형 프로그래밍은 상태값을 지니지 않는 함수값들의 연속으로 생각할 수 있게 해준다. - 위키피디아: 프로그래밍 패러다임 -> 프로그램을 어떻게 바라보고 설계할 것인가? 를 위해 패러다임이 필요함. 여러가지 패러다임을 알고 있다면 그 중에서 더 간결하고 단순하..
-
instance 메서드 vs class 메서드Q 2023. 5. 5. 17:12
Instance Method : Class, Stuct, Enum 형태의 인스턴스에 속한 메소드 클래스를 통해 호출할 수 없고, 클래스의 인스턴스를 만들어 실체화 하여 생성된 인스턴스를 통해서 호출할 수 있는 메소드 Class Method : 인스턴스를 만들어 실체화 하지 않아도 클래스를 통해 직접적으로 호출 가능하다. Class Method는 왜 사용하는가? : static 메서드는 상속이 불가능하다. 그런데 이를 상속해서 사용하기 위해 class Method를 사용, overriding이 가능해진다. static 메서드: 상속해서 사용은 가능, 오버라이딩 해서 사용할 수 있도록 만든 것이 class 메서드이다. [예제 코드] import UIKit class Person { class func sin..