본문 바로가기

전체 글82

ARC란? - 강한참조와 약한참조, [weak self] 메모리 공간 구조 알아보기 프로그램을 실행하게 되면 운영체제는 메모리에 프로그램을 위한 공간을 할당함 할당된 메모리 공간은 아래와 같이 코드영역, 데이터 영역, 힙 영역, 스택 영역으로 나누어져 있음 그림에 써져 있는 설명처럼 코드 영역: 실행한 프로그램의 코드를 기계어로 변환하여 저장하고 있음 (컴파일 타임 시 결정) 데이터 영역: 전역변수, static 변수 저장 (시작과 동시에 할당, 프로그램이 종료되어야 메모리 해제) 힙 영역 : 프로그래머가 동적으로 할당/해제하는 메모리 영역 (런타임 시 결정) 스택 영역: 지역 변수, 매개 변수 등이 저장되고 해당 변수를 사용하는 함수 종료 시 메모리 해제됨 (컴파일 타임 시 결정) ARC란? ARC란? Automatic Reference Counting의 약.. 2024. 1. 31.
네비게이션 스택과 모달 시트에서의 뷰 컨트롤러 라이프 사이 라이프 사이클 기본 정리https://zeddios.tistory.com/43라이프 사이클의 기본적인 내용은 이 블로그를 참고해 공부했다.추가적으로 네비게이션 스택에서의 라이프 사이클 호출 방법과 모달 시트로 뷰를 연결하였을 때 라이프 사이클에 차이가 있어 정리를 해보았음뷰 컨트롤러 연결 상태 일단 뷰 컨트롤러의 모습을 살펴보면 위와 같이 1번 뷰에서 버튼을 누르면 2번 뷰, Sheet뷰로 이동할 수 있으며2번 뷰는 네비게이션을, Sheet뷰는 modal present로 연결1번 뷰를 띄웠을 때그냥 뷰 한개를 띄울 때는 예상했던 순서대로 didLoad - willAppear - DidAppear 가 호출된다.2번 뷰 네비게이션 이동1) 1번 뷰에서 2번 뷰로 이동했을 때2번 뷰의 didLoad - 1번 .. 2024. 1. 11.
[Swift] mutating 키워드란? Swift의 타입 분류 스위프트의 타입은 참조 타입과 값 타입으로 분류된다. - 참조 타입 : 클래스 - 값 타입 : 구조체, 열거형, 튜플 또한 스위프트의 기본 타입은 모두 구조체로 구현됐다. 즉 값 타입이다. 참조 타입과 값 타입의 차이는 값을 복사하는 과정에 있다. - Value Type(값 타입) : 새로운 복사본을 생성해 할당한다. 기존 인스턴스와 별개의 인스턴스가 생성됨 (깊은 복사가 이루어짐) - Reference Type (참조 타입) : 원본 데이터의 참조 값이 복사된다. 즉 기존의 인스턴스와 연결되어 있음 (얕은 복사가 이루어짐) Value Type(값 타입)의 인스턴스는 기본적으로 타입 내부 메서드에서 프로퍼티를 수정할 수 없다. => 이를 해결하기 위해 mutating이 사용됨 mu.. 2023. 5. 10.
[Swift] 프로토콜 지향 프로그래밍 - 프로토콜 초기 구현 객체 지향 프로그래밍에서 프로토콜 지향 프로그래밍으로 객체 지향 프로그래밍 (OOP : Object-Oriented-Programming) 객체 지향 프로그래밍이란? - 프로그램을 수많은 객체들로 나누어 이들의 상호 작용을 통해 프로그램을 구현하는 방식이다. - 클래스의 상속을 통해 다형성을 구현한다 -> 공통 코드를 슈퍼클래스에서 제공하고 서브클래스는 이를 상속받아 구현 [단점] 슈퍼클래스에 너무 종속적이다. - 상속을 위해서 슈퍼클래스의 코드를 모두 알고있어야한다. - 대부분의 언어에서 다중 상속을 제공하고 있지 않아 서브 클래스는 자신한테 필요하지 않은 다른 서브클래스들의 공통 기능까지 상속받아야 한다. 이에 슈퍼클래스 또한 일부의 서브클래스들만 필요한 기능들이 계속 추가되다 보면 쓸데없이 규모가 .. 2023. 5. 6.