본문 바로가기

ios35

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] 고차함수 - map, filter, reduce 고차함수란? 다른 함수를 전달인자로 받거나 함수의 실행 결과를 함수로 반환하는 함수이다. swift의 대표적인 고차함수로는 map, filter, reduce가 있다. map 컨테이너 내부의 기존 데이터를 변형해 새 컨테이너를 생성한다. 즉 전달받은 함수를 통해 변형된 데이터를 반환하여 새 컨테이너로 만들어준다. -> 기존값을 변경하는 것이 아니라 새로운 컨테이너를 생성하여 반환해 줌 // map //map과 for-in 문 비교 var doubleNumbers:[Int] = [] for number in numbers { doubleNumbers.append(number*2) } //[0,2,4,6,8] doubleNumbers = numbers.map({ (number) in return number.. 2023. 4. 12.
[Swift] 오류처리 - throws, do-catch, try 오류와 오류 처리 오류처리란 프로그램이 오류를 일으켰을 때 이것을 감지하고 회복시키는 일련의 과정이다. 오류 표현 Error라는 프로토콜을 준수하는 타입의 값을 통해 표현한다. 사실상 Error프로토콜은 요구사항이 없는 프로토콜이지만, 오류를 표현하기 위해 Error프로토콜을 채택한다. -> Error프로토콜을 채택함으로써 해당 타입이 오류 처리를 위한 타입임을 알 수 있음 오류를 나타내기 위한 타입으로 주로 열거형을 사용함 enum MyError:Error{ case error1 case error2 case error3 } error프로토콜을 준수한 열거형을 하나 선언한 후 나올 수 있는 에러 유형별로 case를 나누어 작성해 준다. 오류 처리 과정 오류 종류를 미리 예상해 오류를 표현함 오류 발생 .. 2023. 4. 12.