업무를 처리하다가 프로퍼티의 상황을 체크해야 하는 작업이 있었다. 프로퍼티 옵저버 프로퍼티 값이 설정될 때마다 옵저버가 호출된다. willSet은 값이 저장되기 직전에 호출된다. didSet은 값이 저장된 직후에 호출된다. 그래서 당연히 프로퍼티 옵저버를 사용해야지 하며 사용했다. 초기화하면서 당연히 여기서 프로퍼티 옵저버도 사용되겠지 하면서 사용했는데 초기화 시에는 옵저버가 호출되지 않았다. 그래서 뭐지 🤔이상하네 하면서 문서를 보니까 나만 몰랐던 내용이 적혀있었다. 또 찾아보니 프로퍼티 옵저버를 사용하기 위해서는 프로퍼티의 값이 반드시 초기화되어 있어야 한다고 나와있었다. 그렇기 때문에 클래스의 init()안에서 값을 할당할 때 didSet과 willSet이 호출되지 않았다. 생각해보니 옵저버가 관찰..
스탠퍼드 대학의 강의를 학습하면서 Identifiable프로토콜을 사용하길래 궁금해진 Identifiable 프로토콜 🤔 그래서 오늘은 Identifiable 프로토콜에 대해서 살펴보겠습니다. 저는 이 친구를 처음 보았는데요. 이 프로토콜은 5.1에 구현되었다고 합니다. 한마디로 말하자면 Indentifiable프로토콜은 식별 가능하게 하는 프로토콜입니다. 이 프로토콜이 어떻게 이뤄져 있는지 살펴보겠습니다. associatedtype으로 ID가 선언되어 있습니다. 그리고 이는 Hashable을 준수합니다. Hashable프로토콜을 준수하기 때문에 hashValue를 갖게 됩니다. 이 hashValue는 각 인스턴스를 식별 가능하도록 합니다. 예를 들어서 카드 매칭 하는 게임을 만든다고 해봅시다. 카드를 ..
https://www.raywenderlich.com/762435-swift-interview-questions-and-answers 에서 본 인터뷰 질문에 내 생각을 작성해봄. 튜토리얼 1의 값은 1이고 튜토리얼 2의 값은 2다. 레퍼런스를 참조하는 것이 아니라 복사하기 때문에 1과 2를 별개로 생각해야 한다. 클래스였다면 튜토리얼1, 튜토리얼 2는 2가 될 것. 참조값이 변경되는 것을 논함. 변수면 참조값이 변할 수 있고 상수면 변할 수 없다. view2의 프로퍼티를 변경하는 건 상관없다. view2에 새로운 참조값을 넣는건 불가능. animals.sort { return $0 < $1 } animals.sort { $0 < $1 } animals.sort(by:
SwiftUI에서 스택은 3가지 종류가 있습니다. 3가지 종류는 VStack, HStack, ZStack입니다. VStack 먼저 VStack을 살펴보겠습니다. 공식 문서를 살펴보면 VStack은 Gneric Structure이며, 자식들을 수직으로 배열하는 뷰입니다. ContentView의 body에 VStack을 추가하겠습니다. VStack에는 Text가 두 개 들어가 있습니다. Hello, World1 그리고 Hello World2가 수직으로 나열됩니다. HStack 다음은 HStack을 살펴보겠습니다. 공식 문서를 살펴보면 HStack은 Gneric Structure이며, 자식들을 수평으로 배열하는 뷰입니다. ContentView의 body에 HStack을 추가하겠습니다. HStack에는 Text..
SwiftUI에서 뷰 라이프 사이클 이벤트는 onApeear, onDissapear를 통해서 반응한다. SwiftUI는 UIKit의 같게 viewDidAppear( )과 viewDidDisappear( ) 대신대신 onappear( )그리고 ondisapppear( )를 가진다. VStack에 onAppear( ) 메소드를 작성해주면, VStack이 나타날 때마다 메소드가 호출되어 appear :)이 출력될 것이다. 실행을 시켜본다. appear :)이 잘 출력되는 것을 확인할 수 있다.
스위프트 표준 라이브러리의 대부분의 데이터 타입은 Equatable프로토콜을 준수합니다. Equatable 프로토콜은 == 를 사용해 같은지 비교할 수 있습니다. 또 != 를 사용해서 다른지 비교할 수 있습니다. 아래 코드는 Kofi가 students배열["Kofi", "Abena", "Efua", "Kweku", "Akosua"]에 포함되어 있는지 확인하는 작업입니다. let students = ["Kofi", "Abena", "Efua", "Kweku", "Akosua"] let nameToCheck = "Kofi" if students.contains(nameToCheck) { print("\(nameToCheck) is signed up!") } else { print("No record of \..
스위프트UI를 학습하다가 갑자기 궁금해진 버전별 사용량 알다시피 스위프트UI는 iOS13부터 지원된다. 버전별 사용량 확인하는 곳은 앱스토어의 지원이다. 2020년 1월 27일에 앱스토어에서 측정한 수치는 아래와 같다. 얼마나 사용하는지 궁금했는데 77%나 사용한다니 그리고 현재는 4월이니 몇 달 사이에 또 증가했겠지... iOS13을 사용하는 비율은 계속 증가할 것 같다. (사용 가능한 모델은 iPhone 11 - iPhone SE까지다) 아직까진 계속 UIKit로 개발하고 있지만 언젠가 UIKit에서 SwiftUI로 갈아타는 시기가 오겠지? 🤪 https://developer.apple.com/kr/support/app-store/ App Store - 지원 - Apple Developer App S..
- Total
- Today
- Yesterday
- Animation
- string
- wwdc
- 책 추천
- 알고리즘
- SWIFT
- 머신러닝
- ReactiveX
- leetcode
- swiftUI
- iOS SwiftUI
- 스위프트UI
- Xcode
- ios
- RX
- 딥러닝
- 문자열
- objc
- Deep learning
- objective-c
- rxswift
- 애니메이션
- 독서
- swift5
- 스위프트
- 책
- Algorithm
- stanford SwiftUI
- ARC
- 책 후기
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |