본문 바로가기
반응형

iOS67

[Swift] self?. vs guard let self = self 클로저내에서 self를 참조할 때, self?.와 guard let self = self의 사용은 주로 강한 참조와 약한 참조, 그리고 코드 가독성과 안전성 측면에서 차이를 보입니다. self?. 사용someClosure = { [weak self] in self?.doSomething()}self?.는 클로저 내에서 self를 약하게 참조(weak reference)할 때 사용됩니다. self가 nil일 경우 클로저 내의 코드가 실행되지 않도록 합니다.장점:안전성: self가 nil일 경우 클로저 내의 코드가 실행되지 않아 안전합니다.간결함: 짧고 간결한 코드로 작성할 수 있습니다.단점:옵셔널 처리: 모든 self 참조가 옵셔널이므로, 추가적인 옵셔널 언래핑이 필요할 수 있습니다.부분 실행: se.. 2024. 7. 3.
[RxSwift] Rx를 이용한 페이징처리 RxSwift를 이용해서 조금 더 리엑티브하게 페이징 처리를 해보았습니다.extension Reactive where Base: UIScrollView { var reachedBottom: Observable { return contentOffset .flatMap { [weak base] contentOffset -> Observable in guard let scrollView = base else { return Observable.empty() } let visibleHeight = scrollView.frame.height - scrollView.contentInset.top - scrollView.con.. 2024. 6. 25.
WWDC 2024(Swift6) iOS 18아이콘을 자유롭게 배치 가능아이콘 다크 모드 지원아이콘 색상 변경 가능컨트롤센터 새로운 커스터마이즈 기능 추가컨트롤센터 그룹 분류 가능잠금 화면의 퀵 액세스 버튼앱을 잠글 수 있는 기능을 탑재, Face ID로 잠금 해제홈화면 앱아이콘 숨기기 기능메시지앱 이모티콘이 스티커 기능 강화지갑앱 아이폰끼리 송금 가능사진 앱 디자인 변경보기 기능 통합 간단한 검색Audio & HomeAirPods 고개를 끄덕이거나 고개를 저으면 Siri에게 응답 가능시끄러운 장소에서도 목소리를 분리하여 선명하게 들리는 기능 탑재개인화된 공간 오디오 게임 사운드 지원InSight 기능 (등장인물 및 재생 중인 곡 표시)21:9 프로젝터 지원새로운 스크린 세이버 추가watchOS 11 발표피트니스 앱 기능 강화 (운동 강.. 2024. 6. 19.
[RxSwift] Map, FlatMap (Combining Operators ) map이란?map은 Observable의 각 요소에 대해 주어진 함수를 적용하여 새로운 Observable을 반환합니다. 쉽게 말해, 입력 데이터를 원하는 형태로 변형하는 데 사용됩니다.import RxSwiftlet disposeBag = DisposeBag()let numbers = Observable.of(1, 2, 3, 4, 5)numbers .map { $0 * 2 } .subscribe(onNext: { print($0) }) .disposed(by: disposeBag)//결과값//2//4//6//8//10flatMap이란?flatMap은 Observable의 각 요소를 다른 Observable로 변환하고, 그 모든 Observable을 하나의 Observa.. 2024. 6. 17.
[RxSwift] Rx를 이용한 백그라운드 감지 Rx를 이용해 UIApplication 이벤트 감지제가 생각한 방법은 NotificationCenter와 RxSwift를 결합하는 것 입니다.아래는 예제입니다. import UIKitimport RxSwiftimport RxCocoaclass ViewController: UIViewController { let disposeBag = DisposeBag() override func viewDidLoad() { super.viewDidLoad() // 포어그라운드로 전환될 때 NotificationCenter.default.rx.notification(UIApplication.willEnterForegroundNotification) .. 2024. 6. 14.
[Swift] 의존성 주입 Dependency Injection 의존성이란? Dependency한 객체가 다른 객체에 의존하는 것을 의미한다. 즉, 의존하는 객체가 변경되면 다른 객체도 영향을 받는다는 것을 의미한다. 의존성 주입 (Dependency Injection)외부에서 생성한 후, 의존하는 객체를 전달받아 사용하는 디자인패턴 의존성 주입은 굳이 왜하는걸까?의존성 주입(Dependency Injection, DI)은 객체 지향 프로그래밍에서 객체 간의 의존 관계를 외부에서 주입하여 객체 간 결합도를 낮추고, 코드의 유연성과 재사용성을 높이기 위해 사용된다.  그렇다면 Swift는 프로토콜 지향 프로그래밍인데, 왜 사용하는걸까?프로토콜 지향 프로그래밍 패러다임을 강조하지만, 의존성 주입(Dependency Injection, DI) 역시 중요한 역할한다. 결합도.. 2024. 6. 11.
반응형