본문 바로가기
728x90

분류 전체보기86

[Swift] 고차함수 (map, filter, reduce, compactMap, flatMap) 고차함수 (Higher-order Function)Swift에서 고차함수(Higher-Order Function)는 다른 함수를 인자로 받거나 함수를 반환하는 함수입니다. 이러한 함수는 코드의 재사용성을 높이고, 함수형 프로그래밍 스타일을 사용할 수 있게 해줍니다1. mapmap 함수는 배열의 각 요소에 동일한 연산을 적용하여 새로운 배열을 반환합니다.let numbers = [1, 2, 3, 4, 5]let squaredNumbers = numbers.map { $0 * $0 }print(squaredNumbers) // [1, 4, 9, 16, 25] 2. filterfilter 함수는 배열의 요소 중 주어진 조건을 만족하는 요소들만을 포함하는 새로운 배열을 반환합니다.let numbers = [1,.. 2024. 7. 5.
[Swift] 타입에러 경고 Cast from 'JSON?' to unrelated type ' ' always fails 해당 경고는 Swift에서 JSON? 타입을 다른 타입(예: [[String: Any]] 또는 Data)으로 캐스팅하려고 할 때 발생합니다.경고가 뜨는 이유는 Swift의 타입 시스템에서 JSON 타입이 예상하는 타입과 호환되지 않기 때문입니다.해결하기 위해서는 JSON 타입을 적절하게 처리하고, 이를 원하는 타입으로 변환해야 합니다.if let res = res { let data = try res.rawData() // JSON 데이터를 Data로 변환 let terms = try JSONDecoder().decode([DTO].self, from: data) // Data를 [DTO]로 디코딩 .. 2024. 7. 4.
[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.
728x90
반응형