본문 바로가기

iOS121

모든 View Controller 객체의 상위 클래스는 무엇이고 그 역할은 무엇인가? - UIViewController라는 클래스가 모든 View Controller 객체들의 상위 클래스가 됩니다. - UIViewController 객체의 상위 클래스는 UIResponder로, UIResponder는 이벤트에 응답하고 이벤트를 처리하는 역할을 하는 인터페이스 입니다. 이벤트가 발생하면 UIKit은 이벤트를 리스폰더에게 전달하고 리스폰더는 이벤트를 처리하게 됩니다. 역할 - 뷰와 사용자 상호 작용에 응답 - 기본 데이터의 변경에 대한 응답으로 뷰의 콘텐츠를 업데이트 - 앱에서 다른 뷰 컨트롤러를 포함한 다른 객체와 조정 - 뷰 크기 조정 및 전체 인터페이스의 레이아웃 관리 https://github.com/lunchScreen/Interview_Questions/issues/19 모든 Vi.. 2022. 4. 9.
prepareForReuse 정의 - prepareForReuse는 재사용되는 셀을 사용할 때, 모든 값을 초기화 시키기위해 호출하는 함수입니다. 원인 - 테이블 뷰와 같이 하나의 화면에서 재사용되는 다양하고 많은 cell이 있습니다. - 많은 cell이 재사용 되었지만, cell 안에 들어가는 데이터의 조건은 각각 다를 수 있습니다. - cell에 내포된 내용은 다르지만 cell 자체는 재사용되기 때문에, 콘텐츠와 무관한 정보까지 입력되며 문제가 발생할 수 있습니다. 해결방법 - prepareForeReuse()를 통해서 재사용되는 셀의 속성을 초기화 할 수 있습니다. override func prepareForReuse() { super.prepareForReuse() } 내용 출처 https://gyuios.tistory.co.. 2022. 4. 8.
Class의 성능을 향상 시킬 수 있는 방법들을 나열해보시오. Allocation - Swift는 자동으로 메모리 할당과 해제를 처리합니다. 메모리 할당과 해제는 Stack 또는 Heap에서 처리됩니다. Stack - LIFO(Last In First Out)의 단순한 구조로 메모리 할당과 해제가 편리합니다. - StackPointer를 사용하여 할당, 해제를 처리합니다. - 단순한 구조를 가진만큼 시간복잡도는 O(1)로 속도가 매우 빠릅니다. - Stack은 Heap보다 비용이 더 적게 들어가며, 속도가 더 빠른 할당 방법입니다. Heap - Stack보다 더 복잡한 구조를 가지고 있습니다. - Dynamic한 할당 방법을 사용하는데, Heap 영역에서 사용하지 않은 블록을 찾아서 메모리 할당을 처리합니다. - 할당을 해제하기 위해서는 해당 메모리를 적절한 위치로.. 2022. 4. 7.
NotificationCenter 동작 방식과 활용 방안 정의 - Notification : Notification Center를 통해 등록된 모든 Observer(관찰자)에게 정보를 브로드캐스트(전달, 뿌려주는)하는 컨테이너 - NotificationCenter : 등록된 모든 Observer에게 정보를 전달하는 메커니즘, Key:Value로 구성 Notification - 등록된 노티피케이션에 노티피케이션 센터를 통해 정보를 전달하기 위한 구조체. Notification 주요 프로퍼티 - name : 알림을 식별하는 태그 var name: Notification.Name - object : 발송자가 옵저버에게 보내려고 하는 객체, 주로 발송자 객체를 전달하는 데 사용 var objcet: Any? - userInfo : 노티피케이션과 관련된 값, 또는 객체.. 2022. 4. 6.
OOP, FP 서론 면접 질문 중 "OOP와 FP에 대해서 알고 있는지?"라는 질문을 한다고 합니다. 갑자기 들으면 당황스럽고 생소하게 느껴지지만, OOP는 Object-Oriented Programming의 약자로 객체 지향 프로그래밍이며 FP는 Functional Programming의 약자인 함수형 프로그래밍에 대해서 묻는 것입니다. 객체 지향 프로그래밍 [OOP] ▪ 정의 - 컴퓨터 프로그래밍 패러다임 중 하나로, 프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체(Object)를 만들고, 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법입니다. ▪ 대표적인 언어 - C++ - C# - Java - Swift - Python - Objective-C ▪ 객체지향 5원칙(SO.. 2022. 4. 5.
Realm이란? (이론) 정의 - 오픈소스로 모바일에 최적화된 데이터베이스 라이브러리입니다. Realm의 특징 1, 쉬운 사용 - 사용자 페이지에서 Realm을 시작하는데 몇 분이면 충분하고 몇 시간 만에 앱을 새로 작성할 수 있으며 몇 주의 업무시간을 줄일 정도로 쉽게 접근할 수 있습니다. 2, 크로스 플랫폼 - iOS 와 Android 모두 지원하며, 파일 플랫폼 간에 호환이 가능하고 Java, Swift, Objective-C에서 동일한 상위 모델을 사용할 수 있습니다. 3, 빠른 속도 - persistence엔진을 사용해 SQLite와 CoreData보다 작업 속도가 빠릅니다. 4, 지원 - Rx를 지원하는 RXRealm이 존재합니다. 사용 1, Realm을 설치합니다. - SPM, CocoPods, Carthage를 사.. 2022. 4. 2.