목록분류 전체보기 (30)
sanichdaniel의 iOS 개발 블로그
The Layout Cycle Layout은 Black Box일때가 많다. 뷰에 주어진 constraint으로부터 뷰에 프레임이 할당되기까지의 과정에 대해 알아보자 The Layout Cycle 1. Application Run Loop 이 돈다 2. Constraint가 변한다 Constraint 변하는 상황들에는 아래의 예시들이 있다. 1. activate or deactivate 2. setting constant or prioritiy 3. adding or removing views Constraint change가 발생하면 Layout Engine은 layout을 다시 계산한다 뷰들은 자신의 superview가 layout을 다시 그려야한다고 마킹하다 (superview.setNeedsLayo..
마틴 파울러의 리팩토링을 읽다가 리팩토링 기법중 하나인 함수를 추출하기 단원을 읽다가, 함수가 사용되는곳이 한곳에 불과하면 private 함수로 빼는것보다 중첩함수를 사용하는것이 유용하다는 글을 읽었다. 중첩함수를 한번도 사용해본적이 없었기에 공부해보았다. 중첩함수를 처음 보았을때는 낯설어서 못생겼다고 생각을 했었다. 하자만 공부해보니 중첩함수는 가독성과 캡슐화의 측면에서 이점이 있다. 가독성 private 함수는 클래스(또는 파일)에서 접근이 가능하다. 하지만 중첩함수는 해당 함수안에서만 사용된다는것이 보장된다. public namespace를 줄이려고 private 키워드를 사용하듯, private namespace를 줄이기 위해 중첩함수를 사용해보자. 캡슐화 중첩함수는 소속된 함수의 지역변수에 접근..
value 타입에 관한 WWDC 영상을 참고하여 새로알게된 사실들을 정리해보았다. 배경지식 value type vs reference type value type: 값이 복사될때 (할당, 생성, 인자로 넘겨질때) 매번 독립적인 인스턴스를 만든다. reference type: 값이 복사될때 참조가 복사되고 인스턴스는 공유된다 heap stack 어디 저장되나 Referenct 타입은 heap에 저장되고, 포인터(참조)는 stack에 저장된다. value type이 class에 포함되거나 closure에 캡쳐되면 heap에 저장된다. Reference 타입은 항상 heap에 저장, value 타입은 자신이 선언된곳에 저장된다. Local Reasoning 강의 초반에 Local Reasoning이란 term..
expressions(수식) 값을 리턴하는 코드 let someValue:Int = 12 if true && false { print("This is false") } 여기에 들어간 expression은 let someValue:Int = 12 true && false "This is false" statement(문장) 어떠한 작업을 수행하는 모든 문장 Swift에서는 크게 3가지 종류로 statement를 구분한다 expression은 값을 리턴하는 statement라 볼 수 있다 1. simple statements expression이나 선언 2. compiler control statements #if 3. control flow staements if 문, guard문, for 문.. lite..