Scene Delegate의 역할에 대해 설명하시오
ios 면접 질문 2022. 7. 22. 15:31

iOS 12 이하 버전의 AppDelegate iOS 12 이하 버전에서는 Scene Delegate 라는 것이 존재하지 않고, 오로지 AppDelegate 만 존재했다. iOS 12 이하 버전에서의 AppDelegate는 다음과 같이 2가지 역할을 했었다. Process Level 의 이벤트 발생을 알려줌 애플리케이션 시작 life cycle 애플리케이션 종료 life cycle 기타 등등의 life cycle 발생 시 delegate 메소드 실행 UI 의 상태변화를 알려줌 애플리케이션이 포그라운드 상태로 진입해 유저에게 보여지거나 백그라운드 상태로 진입해서 유저에게서 숨겨지거나 여러 가지 UI 이벤트가 존재할 때 delegate 메소드를 실행 위와 같이 AppDelegate 가 UI 와 프로세스의 라..

swift initialization
ios 면접 질문 2022. 7. 19. 20:31

Initialization 초기화는 클래스, 구조체 또는 열거형을 사용하기 위해 준비하는 과정. 각각의 저장 프로퍼티 (Property) 에 초기값을 넣어주고, 새로운 인스턴스가 사용되기 전 각종 초기작업을 할 수 있는 life cycle swift 의 initializer 는 objective-c 의 init 처럼 값을 반환하지는 않는다. initilization 의 주요한 역할은 새로운 인스턴스가 처음으로 사용되기 전 정확하게 초기화되었는지 보장하는 것 Setting initial values for stored properties - class 나 struct 의 저장 프로퍼티는 indeterminate 상태로 남을 수 없다. 아래 코드를 보자 class SampleClass { let name: ..

Copy on write
ios 면접 질문 2022. 7. 12. 18:34

Copy on write swift 에서 값 타입 (struct, enum) 을 복사할 때는 항상 새로운 인스턴스가 할당된다고 알고 있다. 그러나 Array, Set, Dictionary 같은 collection type 은 내부적으로 아주 많은 원소를 가질 수도 있다. 만약 10000개의 원소를 가지고 있는 배열이 있는데, 이것을 새로운 프로퍼티에 할당하거나 매개변수로 넘길 때마다 새로운 인스턴스를 생성한다면, 성능이 떨어질 수 있다. 따라서 swift 뿐 아니라 많은 언어에서 Copy on write 방식을 사용해 값을 복사한다. 직역하자면 write, 즉 쓰기 작업을 할 때 값을 복사한다는 뜻으로, 할당 시 바로 복사하는 Copy on assign 방식과는 다르다. swift 에선 Array, Se..

UIView 알아보기
ios 면접 질문 2022. 7. 10. 10:48

UIView 애플 공식문서에 따르면, UIView 는 다음과 같은 역할을 한다. 내부 bounds rectangle 에 content 를 그리고, content 와의 상호작용을 관리한다. 복잡한 content 를 그리기 위해 UIView 를 subclassing 할 수도 있다. Drawing and Animation Core Graphic 또는 UIKit 프레임워크를 사용해 내부 직사각형 영역에 콘텐츠를 그린다. 특정 view properties (frame, bounds, radius, rotate Angle) 등을 animate 를 사용해 새로운 값으로 변경할 수 있다. (Animation 의 정의 -> 일정한 시간 동안 값을 새로운 값으로 변경시키는 것) Layout and subview manag..

Struct 와 Class, Enum 의 차이점
ios 면접 질문 2022. 7. 3. 18:54

개요 Swift 에서 지원하는 자료형인 class 와 struct 의 차이점에 대해서 알아보자. 또한 enum 에 대해서도 알아보자. 객체지향 언어를 다루는 많은 개발자들은 이미 class 의 개념에 대해서 익숙하다. 하지만 필자는 struct 라는 자료형을 swift 에서 처음으로 접해봤는데 (c언어를 제외하고), 이 두 가지 타입의 차이점이 극명하고 장단점이 명확하다보니, 다양한 상황에서 적절한 타입을 사용하는 것이 성능 개선을 위해 필요한 능력이 되었다. Class, Struct 의 공통점 관련있는 값을 저장하거나 계산할 수 있는 프로퍼티를 선언할 수 있다. 함수를 선언할 수 있다. 내부에 선언된 프로퍼티나 메소드에 (타입이름).(프로퍼티 이름) 과 같이 . 을 사용해 접근할 수 있다. Protoc..

실제 디바이스가 없을 경우 개발 환경에서 할 수 있는 것과 없는 것을 설명하시오.
ios 면접 질문 2022. 7. 3. 16:18

Xcode의 시뮬레이터 Xcode 의 시뮬레이터를 활용해 개발을 진행하는 경우, 시뮬레이터는 Mac 의 자원을 소비하기 때문에 필연적으로 실제 ios 디바이스보다 성능이 뛰어나다. 또한 실제 기기에서 가지고 있는 각종 하드웨어 센서들을 사용할 수 없다. 지금부터 실제 디바이스가 없는 경우 어떤 것들이 불가능한지 알아보자 하드웨어 가속도 센서, 가압계 센서, 주변광 센서, GPS 센서 기능 사용 불가 실제 디바이스에만 있는 마이크와 카메라 사용 불가 전화기능 사용 불가 API 푸시 알림 받기, 보내기를 지원하지 않음 사진, 연락처, 캘린더에 액세스하기 위해 개인 정보 보호 알림을 지원하지 않음 Handoff 기능을 지원하지 않음 -> 동일한 아이클라우드 계정으로 로그인한 디바이스 간 작업을 이어서 계속할 ..