top 50 swift interview questions
예를 들어 최고의 Swift (iOS) 인터뷰 질문 및 답변 :
Swift는 iOS, macOS, tvOS 및 watchOS와 Apple Inc.에서 Linux 개발을 위해 만든 강력한 대화 형 프로그래밍 언어입니다.
Swift는 소프트웨어를 개발하는 환상적인 방법이며, 빠르고 안전하며 새로운 프로그램에 친숙한 대화 형 프로그래밍 언어입니다. Swift는 Apple 기기 용 앱을 개발하는 데 가장 많이 사용되는 언어이며 Objective-C 언어에 대한 몇 가지 추가 된 객체 지향 기능이있는 대안입니다.
Swift는 아래와 같이 최근 프로그래밍 패턴을 채택하여 일반적인 프로그래밍 오류의 주요 클래스를 정의합니다.
- 오픈 소스.
- Swift는 배우기 쉽습니다.
- 접근하기 쉽습니다.
- 기본 제공 오류 처리.
- 메모리는 자동으로 관리됩니다.
- 변수는 항상 사용하기 전에 초기화됩니다.
- 정수에 오버플로가 있는지 확인합니다.
- 최신 프로그래밍 기능을 제공합니다.
- 'if'문 대신 스위치 기능을 사용할 수 있습니다.
- 빠르고 안전한 성능, 코드 복잡성.
- 동적 라이브러리 지원.
가장 인기있는 Swift (iOS) 인터뷰 질문
다음은 답변과 함께 iOS Swift 인터뷰 팁 및 질문 목록입니다.
탐험하자 !!
Q # 1) iOS Swift 란 무엇입니까?
대답: Swift는 모바일 및 데스크톱 용 앱을 개발하기 위해 2014 년 6 월 Apple Inc에서 개발 한 컴파일 된 새로운 프로그래밍 언어입니다. 이 언어는 watchOS, macOS, iOS 및 tvOS에서 작동합니다.
Apple은 Cocoa Touch와 Cocoa 모두에서 작동하는 Swift 언어를 만들었습니다. Swift는 Free BSD, Linux, Darwin 등과 같은 여러 운영 체제를 지원합니다.이 언어는 Apple 제품에서 Objective-C 라이브러리 및 Cocoa 프레임 워크와 함께 작동하도록 설계되었습니다.
Q # 2) Swift를 사용하면 어떤 이점이 있습니까?
대답: Swift 프로그래밍 언어는 회고록에서 빠르게 성장하는 언어 중 하나가되었습니다. Swift는 매우 빠르고 강력하며 안전한 소프트웨어를 개발하게합니다.
이 언어는 macOS 및 iOS (iPad 및 iPhone) 용 응용 프로그램을 개발하는 데 사용되는 가장 유용한 프로그래밍 언어입니다.
swift를 사용하여 macOS 및 iOS 용 앱을 개발하면 몇 가지 중요한 이점이 있습니다.
- 오픈 소스 언어 : Swift 프로그래밍 언어는 오픈 소스로 만들어졌으며 모든 사람에게 공개되어 프로그램이 모든 소스 코드, 이메일 목록 및 버그 추적기를 정기적으로 업그레이드하는 것이 간단합니다.
- 배우고 유지하기 쉬움 : Swift 프로그래밍 언어는 C / C ++에 비해 더 간단하고 정확합니다. Apple은 프로그래밍 언어를 사용하기 쉽게 발전 시켰으며 구문은 C #과 같은 프로그래밍 언어에서 가져 왔습니다. 파이썬 , 및 Ruby. 이 프로그래밍 언어의 이러한 간단한 구문은 더 의미가 있습니다. 신속하게 구현 (.m) 및 헤더 (.h) 파일의 모든 내용은 (.swift)라는 단일 파일로 결합됩니다.
- 여러 장치에서 지원 : Swift 프로그래밍 언어는 Apple 기기 지원에만 국한되지 않고 Linux 및 Windows 기기와 같은 기술 세계의 여러 기기도 지원합니다.
- 동적 라이브러리 지원 : 동적 라이브러리는 앱에 연결할 수있는 코드의 실행 가능한 청크입니다. 이 기능은 최신의 신속한 프로그래밍 언어를 허용합니다. 신속하게 동적 라이브러리가 메모리에 직접 업로드되므로 앱의 초기 크기가 줄어들고 마지막으로 앱 성능이 향상됩니다.
- 옵션 유형 : swift의 선택 사항은 값으로 보유 할 수 있거나 보유하지 않을 수있는 유형입니다. 선택 사항을 선언하려면 질문을 사용할 수 있습니다. '?' 표.
- 폐쇄 : 클로저는 코드에서 전달되고 사용될 수있는 자체 포함 된 기능 블록입니다.
Q # 3) Swift와 Objective-C를 설명하세요.
답변 : 아래에 나열된 것은 Swift와 Objective-C의 다양한 차이점입니다.
- Swift는 객체 지향 및 기능적 프로그래밍 언어 인 반면 Objective-C는 클래스 기반 객체 지향 프로그래밍 언어입니다.
- Swift는 동적 라이브러리를 지원하지만 Objective-C는 동적 라이브러리를 지원하지 않습니다.
- Swift는 튜플을 지원하지만 Objective-C는 튜플을 지원하지 않습니다.
- 세미콜론은 Swift에서 필요하지 않지만 세미콜론은 Objective-C에서 필요합니다.
- Swift는 오픈 소스 프로그래밍 언어 인 반면 Objective-C는 Apple로 제한되며 오픈 소스 언어가 아닙니다.
- 상수를 선언하려면 'let'키워드를 사용하고 변수를 선언하려면 'var'키워드를 사용해야합니다. 반면에 목표 C에서는 변수를 'NSString'으로, 상수를 'int'로 선언해야합니다.
- Swift를 사용하면 구조, 클래스 또는 열거에서 메서드를 정의 할 수 있지만 Objective C는이를 허용하지 않습니다.
- Swift에서는 단일 파일 (.swift)에 클래스를 정의 할 수있는 반면, Objective C에서는 클래스에 대한 별도의 인터페이스 (.h) 파일과 클래스에 대한 구현 (.m) 파일을 만듭니다.
Q # 4) iOS 기기가없는 경우 어디에서 Apple iPhone 앱을 테스트 할 수 있습니까?
대답: iOS 기기가없는 경우 Mac 시스템에서 Apple이 제공하는 시뮬레이터에서 애플리케이션을 테스트 할 수 있습니다.
Q # 5) iOS 애플리케이션 개발에 필요한 도구는 무엇입니까?
대답: 다음은 우리가 가져야 할 몇 가지 필수 도구입니다.
- Mac / MacMini : Mac OS에서 실행되는 Intel 기반 프로세서가 장착 된 Mac을 구해야합니다. 걱정하지 마세요. PC가 있어도 Mac Mini를 통해 iOS 앱을 개발할 수 있습니다.
- Xcode : Xcode는 iOS 앱과 MAC OS 모두에 사용되는 Apple IDE (통합 개발 환경)입니다. 비주얼 레이아웃 편집기와 논리, 사용자 인터페이스,이면의 응답을 처리 할 수있는 코드 편집기를 제공합니다.
- Swift 프로그래밍 언어 : 코드 편집기에서 논리는 Swift라고하는 Apple에서 개발 한 프로그래밍 언어로 작성됩니다.
- Apple 개발자 프로그램 : 이 프로그램을 통해 개발자는 앱 스토어에 앱을 게시하여 전 세계의 고객과 다운로더가 앱을 다운로드하여 사용할 수 있습니다.
Q # 6) 스위프트의 가장 중요한 기능은 무엇인가요?
대답: swift의 몇 가지 중요한 기능은 다음과 같습니다.
- 더 인상적인 구조체와 열거 형
- 프로토콜 지향
- 옵션 유형
- 유형 안전성 및 유형 추론 언어
- 세미콜론을 사용할 필요가 없습니다.
- 강제 이니셜 라이저
- 기본적으로 안전함
- 적은 코드, 적은 파일
- 강제 풀기
- 튜플
- 폐쇄
- 다른 언어에 비해 훨씬 빠릅니다.
Q # 7) 신속한 iOS 앱 (iOS 애플리케이션 수명주기)의 일반적인 실행 상태를 설명하세요.
대답: 5 가지 일반적인 실행 상태는 다음과 같습니다.
- 실행되지 않음 : 이것은 앱이 실행되지 않거나 시스템에서 코드가 실행 및 종료되지 않고 애플리케이션이 완전히 꺼지는 간단한 상태입니다.
- 비활성 : 이 상태는 단지 과도기 상태입니다. 비활성 상태는 애플리케이션이 백그라운드에서 실행 중이지만 이벤트를 수신 할 수 없음을 의미합니다.
- 유효한: 활성 상태는 앱이 백그라운드에서 실행되고 이벤트를 수신 할 수있는 기본 실행 상태입니다.
- 배경: 이것은 우리 앱이 백그라운드에서 실행되고 여전히 백그라운드에서 코드를 실행할 수있는 상태입니다.
- 매달린: 이 상태는 실행중인 앱이 백그라운드 상태이고 시스템이이 앱을 일시 중지하고 애플리케이션이 코드를 실행할 수 없음을 의미합니다.
Q # 8) Swift는 객체 지향 프로그래밍 언어입니까?
대답: 예, swift는 객체 지향 프로그래밍 언어입니다.
Q # 9) swift의 기본 데이터 유형은 어떤 유형의 객체입니까?
파이썬 맥을위한 최고의 텍스트 편집기
대답: Swift는 부울 값, 숫자 및 문자열과 같은 다양한 목적으로 기본 데이터 유형의 표준 세트를 사용합니다.
- 정수 : int는 정수 값을 저장하는 데 사용됩니다.
- Double 및 Float : Double 및 Float in swift는 십진수로 작업 할 때 고려됩니다.
- 부울 : 부울 유형은 부울 값을 저장하는 데 사용됩니다. 신속하게 참 및 거짓 조건을 사용합니다.
- 끈: 문자열 리터럴에서 사용자는 Swift에서 큰 따옴표로 묶인 텍스트를 정의합니다.
- 어레이 : 배열은 목록 항목의 모음입니다.
- 사전 : 사전은 고유 키로 연결된 특정 유형의 항목의 순서가 지정되지 않은 컬렉션입니다.
Q # 10) Swift에서 init ()은 무엇입니까?
대답: 초기화는 사용할 열거 형, 구조 또는 클래스의 인스턴스를 준비하는 프로세스입니다.
이니셜 라이저는 특정 유형의 새 인스턴스를 만들기 위해 호출되기도합니다. 이니셜 라이저는 매개 변수가없는 인스턴스 메소드입니다. 이니셜 라이저를 사용하여 init 키워드를 작성할 수 있습니다.
init() { // perform some New Instance initialization here }
Q # 11) iOS swift에서 사용되는 제어 전송 문은 무엇입니까?
대답: iOS swift에서 사용되는 제어 전송 문은 다음과 같습니다.
- 반환
- 단절
- 계속하다
- 실패로 끝나다
Q # 12) swift에서 Let과 Var의 차이점은 무엇입니까?
대답: 신속한 언어에서는 Let 및 Var 키워드를 사용하여 상수와 변수를 선언 할 수 있습니다.
(i)하자 : Let 키워드는 불변이며 상수 변수를 선언하는 데 사용되며 상수 변수는 초기화 된 후에는 변경할 수 없습니다.
예를 들면 : myAge = 25로
age 값은 변경할 수 없으며 let 키워드를 사용하여 한 번만 상수 값을 선언 할 수 있습니다.
(ii) 다음이 있습니다. Var 키워드는 변경 가능하며 변형 변수를 선언하는 데 사용됩니다. 이러한 변형 변수는 런타임을 변경할 수 있습니다.
예를 들면 :
var myName = 'Dell'
name =“Apple”의 값을 변경할 수 있습니다.
Q # 13) 배열에 요소를 추가하는 방법은 무엇입니까?
대답: 배열은 애플리케이션 (앱)에서 가장 많이 사용되는 데이터 유형 중 하나입니다. 애플리케이션 (앱) 데이터를 구성하기 위해 배열을 사용합니다.
Swift는 배열 리터럴을 사용하여 코드에서 배열을 쉽게 만들 수 있습니다. 배열 요소는 쉼표로 묶여 있고 값 목록은 대괄호로 구분됩니다.
예를 들어,
// Add ‘Int’ elements in an Array let natural number = (1, 2, 3, 4, 5, 6, 7) // Add ‘String’ elements in an array let countryName = (“India”, “Japan”, “Malaysia”, “Peru”, “Russia”)
Q # 14) iOS에서 지원하는 JSON 프레임 워크는 무엇입니까?
대답: SBJson 프레임 워크는 iOS에서 지원됩니다. SBJson 프레임 워크는 JSON 처리를 더 쉽게 만드는 추가 제어 및 유연한 API를 제공합니다. API의 유연한 기능을 지원하는 매우 유연한 프레임 워크입니다.
Q # 15) iOS에서 PLIST 란 무엇인가요?
대답: PLIST는 Property List를 나타냅니다. PLIST는 기본적으로 .plist 파일 확장자로 파일 시스템에 저장할 수있는 값과 키의 사전입니다. 속성 목록은 더 적은 양의 데이터를 저장하기위한 이식 가능하고 가벼운 수단으로 사용됩니다. 일반적으로 XML로 작성됩니다.
다양한 유형의 속성 목록이 아래에 나와 있습니다.
- 이진 속성 목록
- XML 속성 목록
- ASCII 레거시 속성 목록
Q # 16) 사전이 무엇인가요?
대답: 사전은 순서가 지정되지 않은 키-값 쌍 모음의 연결입니다. 각 값은 숫자 또는 문자열과 같은 해시 가능한 유형 인 고유 키와 연결됩니다. 키 값을 기반으로 값을 얻고 싶을 때마다 신속한 프로그래밍 언어로 사전 개념을 사용할 수 있습니다.
Swift 사전의 구문 :
다음은 Swift 프로그래밍 언어로 사전을 정의하는 구문입니다.
Dictionary ()
또는
(Key: Value) ()
Swift에서 사전 만들기 :
다음은 선언에 키-값 쌍이있는 사전을 만드는 다양한 방법입니다.
// using Dictionary Var names = Dictonary () Names = (“Ajay”: 1, “Mohit”: 2) print(names) // it prints (Ajay: 1, Mohit: 2)
Q # 17) 신속한 프로토콜이란 무엇입니까?
대답: 프로토콜은 Swift 프로그래밍 언어의 매우 일반적인 기능이며 프로토콜은 Java의 인터페이스와 유사한 개념입니다. 프로토콜은 특정 작업에 적합한 속성, 메서드 및 기타 요구 사항의 청사진을 정의합니다.
가장 간단한 형식으로 프로토콜은 일부 메서드와 속성을 설명하는 인터페이스입니다. 프로토콜은 구현 대신 속성 또는 메서드 골격으로 설명됩니다. 열거 형, 함수 및 클래스를 정의하여 속성 및 메서드 구현을 수행 할 수 있습니다.
프로토콜은 구조, 열거 또는 클래스 유형 이름 뒤에 선언됩니다. 단일 및 다중 프로토콜 선언이 가능합니다. 여러 프로토콜은 쉼표로 구분됩니다.
구조, 열거 및 클래스와 매우 유사한 방식으로 프로토콜을 정의 할 수 있습니다.
Protocol Someprotocol { // protocol definition goes here }
쉼표로 구분 된 여러 프로토콜을 정의 할 수 있습니다.
Class SomeClass: SomeSuperclass, Firstprotocol, Secondprotocol { // Structure definition goes here }
Q # 18) 델리게이트 란 무엇인가요?
대답: Delegate는 구조 또는 클래스 간의 데이터 또는 통신을 전달하는 데 사용되는 디자인 패턴입니다. Delegate를 사용하면 특정 이벤트가 발생할 때 한 개체에서 다른 개체로 메시지를 보낼 수 있으며 테이블보기 및 컬렉션보기 이벤트를 처리하는 데 사용됩니다.
대리인은 일대일 관계와 일대일 의사 소통을합니다.
Q # 19) 이중 물음표“??”의 사용은 무엇입니까? 신속하게?
대답: 이중 물음표 ' ?? ”는 nil-coalescing 연산자이며 주로 nil을 테스트하는 데 사용했던 삼항 조건 연산자의 약어입니다. 이중 물음표는 변수에 대한 기본값을 제공하는데도 사용됩니다.
stringVar ?? '기본 문자열'
stringVar가 nil이 아니면 반환되고, 그렇지 않으면 '기본 문자열'이 반환됩니다.
Q # 20) GUARD 진술은 무엇입니까? 신속하게 GUARD 문을 사용하면 어떤 이점이 있습니까?
대답: GUARD 문은 하나 이상의 조건이 충족되지 않을 때 프로그램 제어를 범위 밖으로 전송하는 데 사용됩니다. 이 문장을 사용하면 운명의 피라미드를 피하는 데 도움이됩니다.
GUARD 문은 다음과 같은 형식입니다.
guard condition else { Statements }
Q # 21) swift에서 사용할 수있는 컬렉션 유형은 무엇입니까?
대답: 값 컬렉션을 저장하기 위해 swift에서 사용할 수있는 세 가지 기본 컬렉션 유형이 있습니다. 사전, 세트 및 배열입니다.
- 어레이 : 배열은 정렬 된 값 모음으로, 정렬 된 목록에서 동일한 유형의 값에 저장됩니다.
- 세트 : 집합은 정의 된 순서없이 컬렉션에서 동일한 유형의 고유 한 값에 저장되는 고유 값의 순서가 지정되지 않은 컬렉션입니다.
- 사전 : 사전은 순서가 지정되지 않은 방식으로 키 및 값 쌍 연결의 순서가 지정되지 않은 컬렉션입니다.
Q # 22)“지연”이란 무엇입니까?
대답: 'defer'는 실행이 현재 범위를 벗어나는 동안 실행할 수있는 코드 블록을 제공하는 키워드입니다.
Q # 23) 튜플이란 무엇입니까? 신속하게 튜플을 만드는 방법은 무엇입니까?
대답: 튜플은 단일 복합 값에있는 서로 다른 값의 그룹입니다. 정렬 된 요소 목록입니다. 튜플의 객체 데이터에 액세스하는 방법에는 두 가지가 있습니다.
신속하게 튜플은 여러 다른 유형으로 구성 될 수 있습니다. 정수 유형과 문자열 유형의 두 가지 값을 지원할 수 있습니다. 법적 명령입니다.
예를 들면 : let ImplementationError = (501,“구현되지 않음”).
다음과 같이 기본 튜플을 만들 수 있습니다.
let person = (name: “Ajay” , age: 34)
Q # 24) Array와 NSArray의 차이점은 무엇입니까?
대답: Array와 NSArray의 차이점은 다음과 같습니다.
- 배열은 한 가지 유형의 데이터 만 보유 할 수있는 반면 NSArray는 다른 유형의 데이터를 보유 할 수 있습니다.
- 배열은 값 유형 인 반면 NSArray는 변경 불가능한 참조 유형입니다.
Q # 25) 클래스와 구조의 차이점은 무엇입니까?
대답: 클래스와 구조의 차이점은 다음과 같습니다.
- 클래스는 참조 유형 인 반면 구조체는 값 유형입니다.
- 클래스는 다른 클래스에 빌드 할 수 있지만 구조체는 다른 구조체에서 상속 할 수 없습니다.
- 클래스에는 상속이있는 반면 구조체에는 상속이있을 수 없습니다.
- 클래스에서 'let'키워드를 사용하여 인스턴스를 만들고 속성을 변경하려고 시도 할 수 있지만 Structs에는 Mutability가 없습니다.
- 클래스에는 유형 캐스팅이있는 반면 구조체에는 유형 캐스팅이 없습니다.
Q # 26) iOS에서 동시성을 달성하는 가장 좋은 방법은 무엇입니까?
대답: iOS에서 동시성을 달성하는 가장 좋은 세 가지 방법은 다음과 같습니다.
- 디스패치 대기열
- 스레드
- 작업 대기열
Q # 27) Swift 프로그래밍에서 상수를 생성하는 방법은 무엇입니까?
최고의 크롬 팝업 차단기 확장 프로그램
대답: Swift 프로그래밍에서 상수를 선언하려면 'let'키워드를 사용해야합니다.
Q # 28) 뷰 컨트롤러간에 데이터를 전달하는 방법은 무엇입니까?
대답: 아래와 같이 뷰 컨트롤러간에 데이터를 전달하는 방법에는 세 가지가 있습니다.
- prepareForSegue 메서드 (Forward)에서 Segue 사용.
- 변수를 직접 설정 (Backword).
- 위임 (백 워드) 사용.
Q # 29) swift에서 기본 클래스를 어떻게 정의 할 수 있습니까?
대답: 신속한 프로그래밍 언어에서 클래스는 기본 클래스에서 상속되지 않습니다. 클래스는 개발자가 수퍼 클래스를 지정하지 않고 정의하며 자동으로 기본 클래스가됩니다.
Q # 30) 신속하게 속성을 선택적으로 만들 수있는 방법은 무엇입니까?
대답: 물음표 선언“ ? ”는 속성을 선택적으로 만들 수 있습니다. 이 물음표 ' ? ”는 속성에 값이 없을 때 런타임 오류를 방지하는 데 도움이됩니다.
Q # 31) 앱 출시주기 동안 누가 앱의 주요 기능을 호출하나요?
대답: 메인 스레드는 앱의 메인 기능을 호출합니다. 앱 시작주기 동안 시스템은 앱에 대한 기본 스레드를 만들고 해당 기본 스레드에서 앱 기본 함수를 호출합니다.
Q # 32) UI 요소는 무엇입니까?
대답: 이미지, 버튼, 레이블, 텍스트 필드 및 응용 프로그램 내에서 사용자에게 표시되는 기타 요소를 UI 요소라고합니다.
Q # 33) 모든 뷰 컨트롤러 객체의 수퍼 클래스는 무엇입니까?
대답: UIViewController 클래스는 모든 뷰 컨트롤러 객체의 수퍼 클래스입니다. 표시,보기로드, 회전 기능은 장치 회전에 대한 응답입니다. 모든 표준 시스템 동작은 UIViewController 클래스에서 제공합니다.
Q # 34) Swift 4.0의 새로운 기능은 무엇입니까?
대답: swift 4.0의 새로운 기능은 다음과 같습니다.
- 유니 코드 정확성을 유지하는 문자열을 더 빠르고 쉽게 사용할 수 있습니다.
- 튜플 및 여러 반환 값.
- throw / try / catch를 사용한 네이티브 오류 처리.
- 구조체에 대한 직렬화를 지원하도록 확장합니다.
Q # 35) 신속하게 여러 줄 주석을 작성하는 방법은 무엇입니까?
대답: 여러 줄 주석이 ( / * ) 시작점 및 ( * / ) 끝점에서.
Q # 36) Xcode에서 사용하는 소스 항목은 무엇입니까?
대답: Xcode는 아래에 언급 된 네 가지 유형의 소스 항목을 사용합니다.
- 뼈대
- 소스 그룹
- 소스 파일
- 소스 폴더
Q # 37) 데이터를 신속하게 전달하는 다른 방법은 무엇입니까?
대답: KVO, Delegate, NSNotification & Callbacks, Target-Action 등과 같은 데이터를 신속하게 전달하는 방법에는 여러 가지가 있습니다.
Q # 38) 클래스의 사용법과 상속의 이점을 설명하십시오.
대답: 그들은:
- 재사용 구현
- 서브 클래스는 동적 디스패치를 제공합니다.
- 서브 클래스는 재사용 인터페이스를 제공합니다.
- 모듈성
- 재정의는 사용자 지정을위한 메커니즘을 제공합니다.
Q # 39) 프로토콜 및 수퍼 클래스의 몇 가지 공통 기능을 설명하십시오.
대답: 프로토콜 및 슈퍼 클래스의 몇 가지 일반적인 기능은 다음과 같습니다.
- 인터페이스 재사용.
- 구현 재사용.
- 모듈 식 설계 지원.
- 사용자 정의를위한 포인트를 제공합니다.
Q # 40) UserNotifications의 가장 큰 변화를 설명하세요.
대답: UserNotifications의 일부 더 큰 변경 사항은 다음과 같습니다.
고급 SQL 인터뷰 질문 및 답변 pdf
- 이미지, 오디오 및 비디오를 추가 할 수 있습니다.
- 알림을위한 사용자 지정 인터페이스를 만들 수 있습니다.
- 알림 센터의 인터페이스로 알림을 관리 할 수 있습니다.
Q # 41) 선택적 체인이란 무엇입니까?
대답: 옵 셔널 체인은 옵 셔널과 결합하여 옵 셔널에 대한 메서드, 속성 및 첨자를 호출하는 데 사용할 수있는 유용한 프로세스이며 이러한 값은 nil 일 수도 있고 아닐 수도 있습니다. 이 과정에서 선택적 값의 체인에서 값을 검색 할 수 있습니다.
- 옵션에 값이 포함 된 경우 옵션의 아래 첨자, 메서드 또는 속성을 호출하면 값이 반환됩니다.
- optional이 nil이면 아래 첨자, 메서드 및 속성을 호출하면 nil이 반환됩니다.
Q # 42) 선택적 바인딩이란 무엇입니까?
대답: Optional Binding 개념은 옵션에 값이 포함되어 있는지 확인하는 데 사용되며 해당 값을 변수 또는 임시 상수로 사용할 수 있습니다. 선택적 바인딩 개념을 사용하여 옵션에 값이 포함되어 있는지 확인합니다.
선택적 바인딩은 조건 (if 및 while) 문과 함께 사용하여 선택 사항 내부의 값을 확인할 수 있습니다.
Q # 43) swift의 Higher-Order 함수는 무엇인가요?
대답: 고차 함수는 다음과 같습니다.
- 지도: 배열 내용을 변환합니다.
- 줄이다: 컬렉션의 값을 단일 값으로 줄입니다.
- 종류: 배열 정렬.
- 필터: 배열 내용을 변환합니다.
Q # 44) 앱 개발시 일반적으로 사용하는 디자인 패턴을 설명해주세요.
대답: 앱 개발 중에 사용되는 디자인 패턴은 다음과 같습니다.
- 행동 : Memento 및 Observer.
- 창조 : Builder, Factory 및 Singleton.
- 구조적 : 파사드, 어댑터 및 데코레이터.
Q # 45) swift에서 옵 셔널을 언 래핑하는 다양한 방법은 무엇인가요?
대답: 선택 사항을 신속하게 풀 수있는 7 가지 방법이 있습니다. 그들은:
- 가드 성명 : 안전한.
- 강제 풀기 : '!'사용 운영자, 안전하지 않습니다.
- 선택적 바인딩 : 안전한.
- 선택적 패턴 : 안전한.
- Nil 통합 연산자 : 안전한.
- 암시 적으로 언 래핑 된 변수 선언 : 많은 경우에 안전하지 않습니다.
- 선택적 연결 : 안전한.
Q # 46) iOS는 멀티 스레딩을 지원하는 메커니즘은 무엇입니까?
답변 : 다음과 같습니다.
- NSThread : 'start'메서드를 사용하여 시작할 수있는 저수준 스레드를 만들 수 있습니다.
- NSOperationQueue : 스레드 풀을 만들 수 있으며 'NSOperations'를 병렬로 실행하는 데 사용됩니다.
Q # 47) Swift 모듈이란?
대답:
- 모듈은 코드 배포의 단일 단위입니다.
- 프레임 워크 또는 애플리케이션은 단일 단위로 빌드 및 제공되며 swift import 키워드를 사용하여 다른 모듈에서 가져올 수 있습니다.
- Xcode 도구의 각 빌드 대상은 swift에서 별도의 모듈로 처리됩니다.
Q # 48) 핵심 데이터를 설명하세요.
대답: 핵심 데이터는 macOS 및 iOS 앱용으로 Apple에서 제공하는 가장 강력한 프레임 워크 중 하나입니다. 핵심 데이터는 애플리케이션에서 모델 계층 개체를 처리하는 데 사용됩니다. Core Data를 프레임 워크로 취급하여 iOS 앱 내에서 데이터를 필터링, 수정, 저장, 추적 할 수 있습니다. Core Data는 관계형 데이터베이스가 아닙니다.
핵심 데이터를 사용하면 SQL을 몰라도 앱의 개체를 데이터베이스의 테이블 레코드에 쉽게 매핑 할 수 있습니다. 핵심 데이터는 MVC 구조의 M입니다.
핵심 데이터의 일부 기능은 참조를 위해 아래에 제공됩니다.
- iOS 및 macOS 도구 체인과의 효과적인 통합.
- 메모리 및 UI (사용자 인터페이스)에서 데이터를 구성, 필터링 및 그룹화합니다.
- 객체 저장을위한 자동 지원.
- 속성 값의 자동 유효성 검사.
- 개체 그래프를 관리하기위한 첫 번째 프레임 워크입니다.
- 개체 그래프에서 개체의 수명주기를 관리하기위한 핵심 데이터 프레임 워크입니다.
Q # 49) 그랜드 센트럴 디스패치 (GDC)에 대해 설명해주세요.
대답: GCD (Grand Central Dispatch)는 동시 작업을 관리하기위한 하위 수준 API입니다. 이 개념은 애플리케이션 성능을 향상시키는 데 사용됩니다. 이 프로세스는 여러 작업을 동시에 관리하는 데 사용됩니다. GCD (Grand Central Dispatch)는 iOS에서 Async 및 Sync 프로그래밍을 사용한 멀티 태스킹에 가장 유용한 API입니다.
- 디스패치 대기열 : Dispatch Queue는 FIFO (선입 선출) 순서로 작업을 관리합니다. 디스패치 큐는 여러 스레드에서 동시에 액세스 할 수 있으므로 스레드로부터 안전합니다.
- 병발 사정: 이 프로세스는 동시에 여러 작업을 시작했지만 동시에 종료되었는지 확실하지 않습니다. 어떤 순서로도 완료 할 수 있습니다. 동시에 하나 이상의 작업을 실행합니다. 작업은 대기열의 순서가 아닌 복잡성에 따라 완료됩니다.
- 연속물: 한 번에 하나의 작업 만 실행됩니다. 특정 리소스에 대한 액세스를 동기화하는 데 사용할 수 있습니다.
- 동조: 동기 함수는 작업이 완료된 후 호출자에게 반환 제어를 갖습니다.
- 비동기 : 비동기 함수는 작업 시작 순서를 지정하여 즉시 반환하지만 완료 될 때까지 기다리지 않습니다.
Q # 50) MVC 구조를 설명하십시오.
대답: MVC는 모델 뷰 컨트롤러를 나타냅니다. MVC는 개발 앱 사용을위한 강력한 소프트웨어 아키텍처 패턴입니다.
MVC는 객체 지향 프로그래밍 개념 위에 구축됩니다. 앱에서 데이터 흐름과 상호 작용을 구성합니다. Model-View-Controller는 iOS 개발에서 이해해야 할 중요한 기본 개념입니다. UIKit, Cocoa Touch와 같은 많은 iOS 프레임 워크는 메시징 및 구조화 된 데이터 흐름에 MVC 패턴을 사용합니다.
Model-View-Controller는 앱의 한 부분에서 다른 부분으로 데이터를 전달하는 데 사용됩니다.
세 가지 역할 중 하나에서 응용 프로그램의 개체를 할당하는 데 사용되는 디자인 패턴입니다.
- 모델: 모델은 데이터의 래퍼입니다. 모델은 앱 데이터의 표현이며 생년월일, 사용자 이름 등과 같은 특정 사용자에 대한 정보를 보유합니다. 모델은 애플리케이션 상태를 관리합니다. 여기에는 데이터 쓰기 및 읽기도 포함됩니다. 모델은 개별 데이터 집합을 캡슐화하고 일부 논리를 적용하여 해당 데이터를 조작합니다.
- 전망: 보기는 UI (사용자 인터페이스)의 표현입니다. 보기는 사용자에게 표시되고 UI (사용자 인터페이스)와 상호 작용하는 개체입니다.
- 제어 장치: 컨트롤러는 뷰와 모델 사이의 중개자입니다. 컨트롤러는 모델과 뷰 사이의 모든 로직을 제어합니다. 모델과보기간에 메시지를 상호 통신하며 그 반대의 경우도 마찬가지입니다.
결론
이 기사에서 가능한 모든 중요한 Swift 인터뷰 질문에 대한 답변 및 예제를 살펴 보았습니다.
여기에 제공된 답변이 iOS의 빠른 기본 사항과 고급 주제를 이해하는 데 실제로 도움이되기를 바랍니다. 이러한 Swift 및 iOS 개발자 인터뷰 질문에 대한 명확한 지식은 초보자 또는 숙련 된 전문가가 첫 번째 시도에서 성공적으로 인터뷰를 완료하는 데 도움이 될 것입니다.
인터뷰에 최선을 다하겠습니다 !!