앱 SCHOOL
/
앱 스쿨 : iOS 멘토링
/
🌟팀 피드백
/
팀12(일이와줘)
/
📝 12조 공유 기록
/
iOS 면접 질문 두 가지
Search
iOS 면접 질문 두 가지
Tag
같이공부해요
Parent item
Sub-item
Tech
URL
날짜
2023/11/28
멘토링
11주차
생성시간
2023/11/28 10:17
작성자
해결
1. 내가 고른 질문을 적고 내 이름 아래에 답변을 적어주세요.
2. 내가 더 잘 답변할 수 있다 혹은 나도 알고있다 하는 질문에는 같이 답변을 달아주세요.
Gallery
Table
Search
Frames와 Bounds의 차이는?
프레임은 부모 기준. 즉 SuperView(상위뷰)의 좌표시스템안에서 View의 위치와 크기. 바운즈는 자기 자신이 기준. 상위뷰와 상관없으며, 즉 View의 위치와 크기를 자신만의 좌표시스템을 가짐
타입 캐스팅을 할 때 사용하는 키워드인 as, as?, as! 이 셋의 차이는 무엇인가요?
as: 컴파일러가 타입 변환의 성공을 보장. 컴파일타임에 가능/불가능 여부를 알 수 있음 as?: 타입변환에 실패하는 경우 nil 을 리턴. 컴파일타임에 가능/불가능 여부를 알 수 없음 as!: 타입변환에 실패하는 경우 실행시간(Runtime) 오류를 발생시킴. 컴파일타임에 가능/불가능 여부를 알 수 없음
Swift에서 Async/Await 기능이 도입되기 전에, 비동기(Asynchronous) 작업을 처리하는 방법에는 어떤 것들이 있나요?
Completion Handlers와 Deligate가 있다.
Hashable이 무엇이고, Equatable을 왜 상속해야 하는지 설명하시오.
Hash Collision을 해결하기 위해 Equatable을 상속해야합니다. Hash Collision은 서로 다른 값들이 같은 해쉬 값으로 계산되는 것을 말합니다. 이때 실제로 두 값이 같은지를 확인하기 위해서 Equatable을 상속해야 합니다.
strong, weak, unowned reference는 각각 언제 사용할까요?
strong참조는 객체가 참조되는동안 참조를 유지해야하는 경우 사용 weak 참조는 객체가 참조되는 동안 참조를 유지하지않아도 되는 경우 unowned 참조는 객체가 참조되는 동안 참조를 유지해야하지만 객체가 해제될떄 참조를 유지해야하는 경우
구조체대신 클래스를 사용하는 경우는?
스위프트는 기본적으로 구조체를 사용하는것을 권장 구조체는 값 복사, 클래스는 참조 복사 어떤 인스턴스의 참조값의 고유성을 유지하거나 Object-C의 API 사용할경우 클래스가 반드시 필요하기도 합니다
함수형 프로그래밍과 객체지향 프로그래밍의 차이를 설명하고, Swift에서 함수형 프로그래밍이 강조되는 이유는 무엇인가요?
객체지향 프로그래밍은 데이터 기록을 강조하고, 추상화, 캡슐화, 상속등 다양한 기능을 사용해서 데이터를 처리하는 프로그래밍이고, 함수형 프로그래밍은 불변성을 강조하고, 데이터의 상태를 변경하는것이 아니고, 함수형으로 표현하는 프로그래밍입니다. Swift는 함수형프로그래밍의 불변성을 이용하여 간결하고 안전한 코드 작성이 용이하고, 클로저와 같은 고차함수를 지원하기 때문에 Swift에서는 함수형프로그래밍을 지향합니다.
SwiftUI에서의 List와 ForEach의 차이는 무엇이며, 각각을 어떤 상황에서 사용해야 할까요?
SwiftUI에서 List는 배열이나 Range같은 데이터를 받아 나열하는 ‘컨테이너 뷰’이고, ForEach는 컬렉션의 각 항목에 대한 반복을 담당하는 ‘구조’입니다. List는 여러 항목을 나열해서 배치할때 사용하고, ForEach는 List 내부에서 각 항목에 대한 뷰를 반복 생성할때 사용합니다.
Hashable 프로토콜에 대해서 설명해보세요.
Hashable 프로토콜을 채택한 타입은 모두 Swift에서 Hash 값으로 계산할 수 있습니다. 계산된 해쉬 값은 인풋의 크기에 상관없이 동일한 크기의 랜덤한 값으로 변환됩니다. 이러한 점 때문에 Swift의 Dictionary의 key에 사용되거나 SwiftUI에서 뷰의 identifier로 사용됩니다. ( 모든 내부 프라퍼티의 해시 밸류를 계산하고 하나로 모아서 새로운 해쉬밸류를 만든다. )