일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 스위프트
- SWIFT
- Clean Code
- 리펙터링
- rxswift
- MVVM
- map
- tableView
- 리팩토링
- HIG
- combine
- RxCocoa
- Protocol
- Xcode
- Observable
- collectionview
- ribs
- uitableview
- uiscrollview
- Human interface guide
- swift documentation
- UICollectionView
- 애니메이션
- ios
- swiftUI
- Refactoring
- 클린 코드
- 리펙토링
- clean architecture
- UITextView
- Today
- Total
목록iOS 기본 (swift) (149)
김종권의 iOS 앱 개발 알아가기
1. collectionView 개념 2. collectionView 구현, custom cell 3. collectionView 레이아웃 개념 (UICollectionViewFlowLayout) programmtically CollectionView 구현 참고: https://ios-development.tistory.com/624 xib사용하여 CollectionView 구현 CollectionView 추가 -> 구분을 위해 CollectionView와 Cell 배경 색상 세팅 Cell의 Identifier 설정 CollectionView의 DataSource 정의 collectionView @IBOutlet 설정 tableView와 동일하게 DataSource에서 numberOfItemsInSect..
1. collectionView 개념 2. collectionView 구현, custom cell 3. collectionView 레이아웃 (UICollectionViewFlowLayout) CollectionView의 개념 CollectionView와 TableView의 차이점 CollectionView는 cell이 grid형태 CollectionView는 UICollectionViewLayout이라해서 cell 레이아웃 설정하는 부분이 따로 존재 tableView에서의 "row"라는 용어가 "Item"으로 사용 CollectionView와 TableView의 공통점 Section과 Cell이 존재하고 dataSource를 가지고 데이터처리와 UI 처리가 분리되어 있는 구조 TableView와 동일하게..
NotificationCenter 특정 코드에 데이터를 보내고 싶은 경우나, 특정 이벤트를 받고 싶은 경우 사용 post하는 부분과 addObserver부분이 존재 post: 노티 전송 addObserver: 노티 받는 입장 사용 방법 노티 구분은 Notification.Name 객체로 구분하므로, 사용할 노티 이름 설정 extension Notification.Name { static let print = NSNotification.Name("print") } post 부분 NotificationCenter.default.post(name: .print, object: nil) addObserver부분 (이벤트를 받을 부분) NotificationCenter.default.addObserver(self..
SPM 추가 Target -> General -> Frameworks, Libraries, and Embedded Content -> '+' 버튼 클릭 Add Other... -> Add Package Dependency URL에 다운받을 프레임워크의 git clone시 사용되는 URL 입력 예제에는 RxSwift 설치 https://github.com/ReactiveX/RxSwift.git 버전 선택 패키지 프로덕트 선택 완료
xib 파일 xib 개념 Xib가 사용되는 원리 archive(아카이빙): xib 모델 객체를 저장하기 위해서, 객체의 프로퍼티를 기록하고 파일 시스템에 저장하는 작업 NSCoder에 있는 encoder를 이용해서 모든 프로퍼티를 인코딩 unarchive(언아카이빙): archive한 데이터로부터 객체를 생성 NSCoder에 있는 decoder를 이용해서 archive된 data를 객체로 생성 NSCoding안에 archive, unarchive하는 함수 존재 UIView는 NSCoding을 준수하고 있는 상태 encode는 시스템에서 자동으로 해주는 형식이므로 따로 함수 존재 x decoder는 아래와 같이 존재 사용되는 과정
ARC Auto Reference Count block에 있는 프로퍼티들에 대하여 RC(Reference count)를 0으로 만들기 위해 -1씩 RC를 감소시켜 메모리해제를 자동으로 해주는 것 단 retain cycle인 경우 메모리 해제 불가능한 경우 존재 주의: 특정 블럭의 함수가 종료된 경우에 메모리 해제를 진행하는 것 weak는 RC를 늘리지 않아서 RC가 0으로 유지되지만 0이라고 곧바로 메모리 해제가 되는것이 아닌 것 Strong RC(Reference Count)를 증가 class A { var b: B? } class B { var a: A? } func sumFunction() { var aInstanceReference: A? = A() // a_RC = 1 var bInstanceR..
weak var 프로퍼티 retain cycle을 방지하기 위해서 weak var사용 weak var는 보통 delegate와 같이 delegate 객체가 사라지면 ARC에서 자동으로 nil을 할당할수 있도록 메모리 관리에 사용 weak var 타입 weak var를 사용하려는 타입이 만약 protocol일 경우, AnyObject를 상속받지 않으면 오류 발생 'weak' must not be applied to non-class-bound 프로토콜은 클래스와 구조체, 열거형에 사용되는데, 이 프로토콜이 어디에 사용될지 모르니 reference count 관리를 위해 사용되는 unowned나 weak 키워드 사용 불가 protocol에 AnyObject를 상속받아서 사용하면, 클래스임 정의하기 때문에 w..