목록iOS (106)
大器晩成

만약 앱스토어에 이런 화면을 구현하신다면 어떻게 구현하실 건가요?Compositional Layout을 사용하지 않는다면, 저는 붉은 테두리는 컬렉션뷰로 만들고, 파란색 테두리는 버튼 또는 두 번째 컬렉션뷰의 헤더로 만들 거 같습니다. 그렇다면 현재 컬렉션 뷰가 두 개가 필요한 것인데, 이걸 하나의 컬렉션뷰로 만들 수 있다면 편하게 관리할 수 있을까요?개발자마다 다르겠지만, Compositional을 활용해서 하나의 컬렉션뷰로 만들어 보려고 합니다. 우선 레이아웃은 위의 그림과 같이 잡았습니다. 코드로 다시 말씀드리겠지만, 첫 번째 섹션은 하나의 그룹이 하나의 아이템을 갖도록 구성했습니다.두 번째는 그룹 2개를 사용했으며, 그룹 안에 그룹이 있으며 아이템 3개가 내부 그룹을 구성합니다. 외부 그룹은 내..

일전에 중첩함수에서 함수를 리턴하는 경우 클로저의 캡처 현상과 동일하다고 했습니다.func makeIncrementer(forIncrement amount: Int) -> () -> Int { var runningTotal = 0 func incrementer() -> Int { runningTotal += amount return runningTotal } return incrementer}let incrementByTen = makeIncrementer(forIncrement: 100)incrementByTen() // 100incrementByTen() // 200incrementByTen() // 300let alsoIncrementByTen = in..

두 클래스 인스턴스가 서로에 대한 강한 참조를 유지하여 각 인스턴스가 다른 인스턴스를 유지하는 경우 강한 참조사이클이라고 합니다. 이때, 메모리 누수가 발생됩니다. Apple 공식문서 예제class Person { let name: String init(name: String) { self.name = name } var apartment: Apartment? deinit { print("\(name) is being deinitialized") }}class Apartment { let unit: String init(unit: String) { self.unit = unit } var tenant: Person? deinit { print("Apartment..

Swift는 앱의 메모리 사용량을 추적하고 관리하기 위해 자동 참조 카운팅 (Automatic Reference Counting) (ARC)를 사용합니다. Heap 영역에 할당되는 데이터를 메모리에서 해제하기 위해서는 관리가 필요합니다.할당이 해제되지 않으면 메모리 누수(Memory Leak) 현상이 발생합니다.MRC Model(Object C에서 사용)- 스위프트에서는 ARC 사용실제 개발자 코드를 보았을 때, point2는 point1을 가리키기고 있기 때문에 RC카운트는 2입니다.이것을 컴파일된 코드로 보면, 내부에 refCount가 있으며 인스턴스트를 생성 시 1이 증가하며, point2가 point1 인스턴스를 할당할 때, 1이 추가됩니다. (retain: 참조카운트 증가)이후 실행이 종료되면 ..