Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- swift
- switch
- cancelAsyncWrite
- beginAsyncWrite
- 패스트캠퍼스
- 함수
- 패캠챌린지
- 프로퍼티 관찰자
- Background
- userDefaults
- 독학
- SeSAC
- ios
- Optional Chaining
- 인스펙터
- Git
- 기본문법
- Threading
- 열거형
- enum
- 직장인자기계발
- 패스트캠퍼스후기
- 직장인인강
- 옵셔널 체이닝
- xcode
- Realm
- 문자열 보간법
- TableView
- 30개프로젝트로배우는iOS앱개발withSwift초격자패키지Online
- RawValue
Archives
- Today
- Total
아삭아삭 iOS 개발
[TIL] 2022.07.28 (SeSAC iOS) 본문
오늘 공부한 내용들을 내가 잊지 않기 위해 기록합니다.
틀린 내용이 있을 수 있는 점 참고 부탁드립니다 :)
■ 수업 복습
(필기정리 + 추가내용 등)
1. protocol
- 특정 이벤트들을 효율적으로 관리하기 위함을 목적으로 대리자에게 이벤트 처리를 맡기는 것
: 특정 이벤트가 발생하면 위임된 delegate가 해당 메소드를 실행시키는 delegate pattern을 구현함 - 규약들을 정리한 프로토콜을 채택하는 것은 일종의 자격증을 부여하는 것과 같다고 할 수 있음
- 각 프로토콜별 구현해야 하는 메서드는 단순히 선언 정도로만 구성되어 있음
→ 상세한 구현 코드들은 해당 프로토콜을 채택한 각각의 클래스, 열거형, 익스텐션, 구조체 에서 이루어짐 - 채택된 프로토콜은 해당 클래스 전체를 책임지는 것이 아니라 관련이 있는 객체(혹은 메서드)에 한하여 작동함.
- 필요성
: 구현하는 페이지의 수와 코드 양이 많아지면 코드 관리에 불편함이 생김
→ 페이지별로 동일하게 반복되는 사항들을 구조화시킬 수 있음
→ 오타방지
→ 타인이 내 코드를 보았을 때 이해도를 높일 수 있음 - 사실 swift의 각종 기능들을 자세히 뜯어보면 타입이나 클래스로 정해진 프로토콜들을 채택한 것임!
(참고 : https://developer.apple.com/documentation/swift/collection)
- property requirements
- 프로토콜 명세서에서는 중괄호 미사용
- 프로토콜 명세서에서는 단순한 선언 정도로만 구성 가능
: 메서드명, 파라미터명, 반환 데이터 타입 정의 가능 (단, 상세 실행코드나 기본값 설정 불가)
- method requirements
- 프로토콜 명세서에서는 저장/연산프로퍼티 구분 안함
→ 구현할 때 저장/연산프로퍼티 중 필요한 기능으로 구분하여 구현 가능
- 프로토콜 명세서에서는 단순한 선언 정도로만 구성 가능
: 변수명, 데이터 타입, 읽기-쓰기 여부 (명세서에 제시된 읽기-쓰기 여부가 최소충족 조건임!)
- 항상 var로 선언함
- optional requirements
- (class에 한하여) 명세서에 ‘@objc optional’가 있을 경우, 해당 메서드는 선택적으로 구현 가능
- anyobjects
2. iOS Framework의 프로토콜
- CaseIterable 프로토콜
- 열거형 값들을 배열처럼 순회 가능하도록 함
- 배열 메서드 사용 가능 ex) allCases
- Hashable 프로토콜
- 정수 hash값 제공
- Dictionary의 key값들은 hashable 해야 함
3. UIToolBar
- fixed space bar button item
- flexible space bar button item
4. UITextView
- TextView는 (TextField 와 달리) placeholder 설정도, 액션 연결도 없음
- inputview
- uitextviewdelegate
5. UISearchBar - UISearchBarDelegate
(내용정리중 - 별도 포스트로 구분 예정)
6. UIPickerView - UIPickerViewDelegate, UIPickerViewDatasource
(내용정리중 - 별도 포스트로 구분 예정)
7. WKWebView
(내용정리중 - 별도 포스트로 구분 예정)
8. App Transport Security Settings
- 앱이 서버에게 전송하는 데이터에 대해 보안을 설정하는 것
- (보안상 안전한 HTTPS와 달리) HTTP의 경우, 외부 서버와 통신하기 위해서는 별도 설정이 필요함 → info.plist에서 설정 가능
■ (과제) 웹뷰 컨트롤러 만들어보기
- 툴바 디자인, 웹뷰기능 구현
- App Transport Security Setting의 속성을 살펴보고 info.plist에 Allow Arbitrary Load를 Yes로 설정
→ http로 시작하는 URL도 웹뷰에서 띄워줄 수 있도록 구현
(전체 코드 : https://github.com/minhye9731/WebViewPractice)
'TIL(Today I Learned)' 카테고리의 다른 글
[TIL] 2022.07.30~31 (SeSAC iOS) (0) | 2022.07.31 |
---|---|
[TIL] 2022.07.29 (SeSAC iOS) (0) | 2022.07.29 |
[TIL] 2022.07.22 (SeSAC iOS) (0) | 2022.07.22 |
[TIL] 2022.07.21 (SeSAC iOS) (0) | 2022.07.21 |
[TIL] 2022.07.20 (SeSAC iOS) (0) | 2022.07.20 |