본문 바로가기

공부/[TIL]7

[TIL] 220125 - iOS의 View 체계 iOS의 애플리케이션 화면에서 보이는 컨텐츠는 모두 윈도우와 뷰를 사용해서 나타낸다고 한다. 그렇기 때문에 원하는 모양으로 화면을 구성하고 화면에서 일어나는 제스처를 관리하기 위해 뷰에 대해 이해하는 것은 매우 중요하다! 윈도우는 그 자체로 컨텐츠를 표현할 수는 없고, 뷰들의 컨테이너 역할 뷰는 UIView class 또는 그 subclass의 인스턴스로 윈도우의 일정 부분에서 컨텐츠를 보여준다. 인터페이스 빌더 또는 코드를 통해서 뷰를 생성, superview에 포함시키거나 삭제시킬 수 있다. 두 가지 방법을 다 알면 좋지만, 개인적으로 협업을 위해서라면 코드를 통한 작업이 더 도움이 될 것이라고 생각한다. 슈퍼뷰는 배열로 서브뷰들을 관리한다. superview는 하나의 배열로 서브뷰들을 관리하며, 배.. 2022. 1. 27.
[TIL] 220122 - Auto Layout 기본적인 내용 오토레이아웃 뷰의 제약사항(Constraint)을 바탕으로 뷰 체계 내의 모든 뷰의 크기와 위치 동적으로 계산한다. 외부변경과 내부변경에 대하여 동적으로 반응하는 인터페이스를 가능하게 한다. 외부 변경 슈퍼뷰의 크기나 모양이 변경될 때 발생하는 것. 예를 들어서, 분할 뷰(split view), 화면 회전, 다른 크기의 스크린 지원하는 경우 등이 있다. 내부 변경 사용자 인터페이스의 뷰의 크기 또는 설정이 변경될 때 발생하는 것. 예를 들어서 애플리케이션 변경에 의해 컨텐츠가 보여지는 경우나 애플리케이션이 동적 타입을 지원하는 경우 등이 있겠다. 오토레이아웃이 필요한 이유❓ 여러가지 경우가 있겠지만 가장 쉬운 경우는 같은 애플리케이션이 다른 크기의 화면을 가지는 기기에서 모두 유사하게 실행 되고자 할 때.. 2022. 1. 24.
[TIL] 220120 - Swift ARC Swift는 ARC(Automatic Reference Counting)을 통해 메모리를 관리한다. 대충 비슷한 개념은 Java의 가비지컬렉션 메모리 관리 방식 참조 타입 인스턴스를 참조할 때 강한참조의 개수를 카운팅 하여 메모리를 관리 강한참조 카운트 개수가 1 이상인 경우 메모리에 할당, 0이면 메모리에서 해제하는 방식 -> 강한 참조 순환문제 발생 가능 -> 메모리 누수 발생 강한참조 순환 문제(Strong reference cycle)를 해결하기 위해 약한 참조(Weak reference), 미소유 참조(Unowned reference) 사용 가능 약한 참조 : 자동으로 nil을 할당할 가능성이 있기에 Optional value + 변수로 사용 미소유 참조 : 자동으로 nil을 할당해 주지 않기 .. 2022. 1. 21.
[TIL] 220113 - Swift Generic Generic의 사전적 뜻 : 일반적인 말 그대로 일반적인 상황에서 사용할 수 있는 타입으로 뭔가를 정의할 때 사용되는 기능 스위프트의 정말 강한 기능 중 하나인 것 같다. Array, Dictionary, Set등이 어떠한 타입으로도 생성될 수 있는것은 바로 이 generic으로 만들어진 컬렉션타입이기 때문이다. 추가적으로, generic을 공부하다가 우연히 본 것인데, 자주쓰이는 프로토콜들에 대해서는 한 번 정리해 볼 필요가 있을 것 같다. Sequence, IteratorProtocol, Equatable, Hashable 등 (제네릭 정리한 부분에 목록은 정리되어 있다!) 2022. 1. 13.