-
Git) fatal: Authentication failed for ...🧑💻/Command 2021. 8. 29. 16:47
Git을 사용하여 Github에 push 하는 중 오류가 발생했습니다. 2021년 8월 13일 이후로 비밀번호 인증을 지원하지 않는다고 하네요. 비밀번호 탈취 시 보안에 취약한 문제때문에 토큰 기반 인증 방식을 채택한 것으로 보입니다. $ git push remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead. remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information. fatal: Au..
-
RxSwift로 UITableView 구현하기🧑💻/Swift 2021. 8. 7. 19:28
RxSwift를 사용하면 Delegate와 Delegate 프로토콜을 채택하여 구현했을 때 보다 코드의 양이 크게 줄어듭니다. 이 외에도 Thread 사용이 간편하다는 점 등 여러 장점이 있는데요. 먼저 Podfile에 RxSwift, RxCocoa를 추가하고 시작해 봅시다. UITableViewDataSource TableView를 구성하는 Cell 데이터를 관리하기 위한 프로토콜입니다. 스토리보드에 설정한 UITableView의 dataSource 연결을 해제합니다. 코드로 구현했었다면 UITableViewDataSource 프로토콜 연결을 제거하고 tableView.dataSource = self 코드를 제거합니다. 1개의 Section으로 구성된 기본 TableView UITableViewData..
-
RxSwift selectedSegmentIndex 연동 안되는 문제🧑💻/Swift 2021. 7. 22. 13:51
UISegmentedControl의 selectedSegmentIndex 값을 직접 변경 시 valueChanged 이벤트를 전송해야 합니다. segctrlTime.selectedSegmentIndex = 0 segctrlTime.sendActions(for: .valueChanged) ⬇️ 자세히 보기 ⬇️ UISegmentedControl의 selectedSegmentIndex 값에 따라 다른 화면을 표시해주기 위해 아래와 같이 RxCocoa를 사용해서 비동기 처리를 했습니다. /* 두번째 화면의 ViewController */ override func viewDidLoad() { super.viewDidLoad() ... segctrlTime.rx.selectedSegmentIndex .observ..
-
Autolayout vs Autoresizing Masks🧑💻/Swift 2021. 7. 16. 01:11
iOS와 macOS의 사용자 인터페이스 레이아웃은 3가지 방법으로 구성할 수 있습니다. Frame-based Layout Autoresizing Masks Auto Layout 구성 방식의 특징과 사용 방법을 알아보겠습니다. Frame-based Layout 모든 View는 위치와 크기 정보를 Frame으로 표현합니다. 처음 View의 Frame은 (20, 20, 120, 80), 두 번째 View의 Frame은 (20, 108, 120, 80)입니다. 실제 View의 Frame 값을 출력하면 다음과 같이 알 수 있습니다. 이 값을 프로그래밍 방식으로 한 땀 한 땀 계산하면 Frame-based Layout 방식이 됩니다. View에 변경 사항이 있으면 영향을 받는 나머지 View에 대해서도 다시 계산해..
-
iOS 앱 생명주기🧑💻/Swift 2021. 7. 12. 23:59
iOS 앱의 시작, 실행 중, 종료까지의 생명주기를 알아보겠습니다. 앱을 실행하면 다음과 같이 진행됩니다. 1. UIApplication 객체를 생성합니다. 2. @UIApplicationMain()가 표시된 클래스를 찾아 AppDelegate 객체를 생성합니다. @UIApplicationMain()은 프로젝트 생성 시 AppDelegate 클래스에 기본으로 추가됩니다. UIApplicationMain 함수의 4번째 delegateClassName에 "AppDelegate"라고 지정할 것을 @UIApplicationMain() Annotation 만으로 쉽게 대체할 수 있었습니다. func UIApplicationMain(_ argc: Int32, _ argv: UnsafeMutablePointer, _..