본문 바로가기
728x90

분류 전체보기86

[ReactorKit] transform과 global state에 대하여 Transformfunc transform(action: Observable) -> Observablefunc transform(mutation: Observable) -> Observablefunc transform(state: Observable) -> ObservableTransform의 함수 종류는 총 3개가 있다. transform 함수는 개발자가 Action, State 및 Mutation 스트림을 조작할 수 있게 해준다.부작용 처리: 로깅, 분석 또는 네트워크 요청과 같은 부작용 처리.복잡한 반응형 흐름 구성: 여러 작업을 체이닝하여 구성.액션 및 상태 필터링 또는 수정: 더 예측 가능한 상태 관리 흐름을 만들기 위해.Global State와의 상호작용: 여러 Reactor가 공통 상태를 공.. 2024. 8. 5.
[Swift] global과 static은 기본적으로 lazy gobal과 static의 Lazy 초기화 Lazy 초기화란?Lazy 초기화는 변수가 실제로 사용될 때까지 초기화를 지연하는 기법을 말한다. 이는 프로그램의 시작 시점에 불필요한 메모리 사용을 피하고, 초기화 비용을 줄이기 위해 사용된다. 다시 말해, 변수가 처음 사용되기 전까지는 초기화되지 않는다.공식문서에서는 "lazy 저장 변수는 이것이 처음 사용되기 전까지 초기값이 계산되지 않는 프로퍼티 입니다. 사용자는 선언부에 lazy 수정자를 붙임으로써 lazy 저장 변수를 나타낼 수 있습니다."라고 되어있다.사용자는 항상 lazy 프로퍼티를 variable로 선언해야만 한다.왜냐하면 이 프로퍼트의 초기값을 인스턴스 초기화가 완료된 시점까지 알 수 없기 때문이다.상수 프로퍼티는 초기화가 끝나기전까지 반드시 .. 2024. 7. 30.
[Swift] 싱글톤(Singleton)패턴과 예제 Singleton Pattern이란? 싱글톤 패턴이란, 특정 클래스의 인스턴스가 하나만 생성되도록 보장하고, 이에 대한 전역적인 접근점을 제공하는 디자인 패턴 전역 접근싱글톤패턴은 전역적인 접근이 가능하다는 특징과 동시에 단점이 될 수 있다.전역 접근은 어플리케이션 전체에서 단 하나의 인스턴스에 접근할 수 있어, 여러 곳에서 동일한 객체를 필요로 할 때 유용하지만, 그만큼 유의해야할 점도 있다. How 어떻게 쓰는가?static과 private initclass Singleton { static let shared = Singleton() private init() { // 초기화 코드 }} static 키워드는 클래스의 인스턴스를 전역적으로 접근할 수 있도록 하기 .. 2024. 7. 23.
[Swift/UIKit] UIColor를 HexString으로 받는 Extension extension UIColor { convenience init(hexString: String) { let hex = hexString.trimmingCharacters(in: CharacterSet.alphanumerics.inverted) var int = UInt64() Scanner(string: hex).scanHexInt64(&int) let alpha, red, green, blue: UInt64 switch hex.count { case 3: (alpha, red, green, blue) = (255, (int >> 8) * 17, (int >> 4 & 0xF) * 17, (int & 0.. 2024. 7. 19.
[Swift] NSObjectProtocol, NSObject Cannot declare conformance to 'NSObjectProtocol' in Swift;NSObjectNSObject는 모든 Objective-C 클래스의 기본 클래스이다.NSObject는 기본적으로 MacOs와 iOS 최상위에 위치하고 있다. 이것은 모든 객체가 공통적으로 가져야 하는 기본적인 동작을 정의하며, 객체 지향 프로그래밍의 근간이 되기도 한다. 객체 초기화 및 메모리 관리:init: 기본 초기화 메서드deinit: 객체가 해제될 때 호출되는 메서드로, Swift에서는 deinit 키워드로 사용객체 비교 및 해싱:isEqual(_:)와 hash: 객체 비교와 해싱을 위한 메서드런타임 클래스 정보:class와 isKind(of:): 객체의 클래스 정보를 제공하고, 특정 클래스의 .. 2024. 7. 16.
[RxSwift] 재사용으로 인해, 테이블뷰 셀안에 버튼이 반응하지 않을때 private func setupActions() { agreeBtn.rx.tap .bind(to: agreeButtonTapped) .disposed(by: disposeBag) goBtn.rx.tap .bind(to: goButtonTapped) .disposed(by: disposeBag) } override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { super.init(style: style, reuseIdentifier: reuseIdentifier) [agre.. 2024. 7. 10.
728x90
반응형