일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Protocol
- 리펙토링
- 스위프트
- map
- combine
- 리펙터링
- Clean Code
- UICollectionView
- ribs
- HIG
- ios
- 애니메이션
- swift documentation
- 리팩토링
- Observable
- clean architecture
- rxswift
- 클린 코드
- Xcode
- swiftUI
- uiscrollview
- collectionview
- SWIFT
- Human interface guide
- MVVM
- RxCocoa
- tableView
- UITextView
- Refactoring
- uitableview
- Today
- Total
목록연산자 (6)
김종권의 iOS 앱 개발 알아가기
isMultiple(of:) 연산자 나누어 떨어지는지 판단하는 연산자 // bad print(6 % 3 == 0) // true // good print(6.isMultiple(of: 3)) // true compactMapValues 연산자 딕셔너리의 value값을 mapping하는 연산자 let dictionary = ["a": "1", "b": "2", "c": "three"] // bad var convertedDictionary1 = [String: Int]() dictionary .forEach { if let val = dictionary[$0.key], let int = Int(val) { convertedDictionary1[$0.key] = int } } print(convertedDi..
zip array에서 사용하는 결합 연산자 두 원소가 항상 같이 짝짓는 연산자 var array1 = [1,2,3,4,5] var array2 = ["a", "b", "c", "d", "e"] zip(array1, array2) .forEach { value1, value2 in print(value1, value2) } /* 1 a 2 b 3 c 4 d 5 e */ 만약 둘 중 하나가 없다면 짝짓지 못하므로 값 x var array1 = [1,2,3,4,5] var array2 = ["a"] zip(array1, array2) .forEach { value1, value2 in print(value1, value2) } /* 1 a */ merge, merging dictionary에서 사용하는 병합 ..
목차) Combine - 목차 링크 Matchging 연산자 * Combine에서 제공하는 Matching 연산자는 기존 Swift에서 제공하는 연산자의 인터페이스와 동일하게 설계되어 사용하기 쉽도록 구현 contains(where:) where 클로저 조건에 따라 Bool 반환 [1,2,3,4,5].publisher .contains(where: { $0 == 3 }) .sink { print($0) } // true tryContains(where:) contains는 true를 반환하면 이후 값에 관해서 체크하지 않음을 주의 (아래에서 true를 먼저 반환하므로 throw 발생 x) [1,2,3,4,5].publisher .tryContains(where: { guard $0 != 5 else { ..
RxSwift withUnretained(self) - capture list를 사용하지 않고 심플하게 표현 Observable.of(1, 2, 3, 4, 5) .withUnretained(self) .subscribe { vc, value in vc.temp = value } .disposed(by: disposeBag) 1) Combine(결합) 연산자 (merge, combineLatest, withLatestFrom, zip, concat) - 이전 글 참고 Scan Observable.of(1,2,3,4) .scan(0, accumulator: { (prevValue, newValue) in return prevValue + newValue }) .do { print($0) } .subscri..
Overflow Operator 단순히 +, -로 접근하면 overflow 런타임 에러 발생 overflow operator 추가: &+ 빼기: &- 곱셈: &* ex) Int16의 범위는 -32768 ~ 32767 var potentialOverflow = Int16.max print(potentialOverflow) // 32767 potentialOverflow = potentialOverflow &+ 1 print(potentialOverflow) // -32768 Operator method 연산자 재정의: static func로 정의 struct Vectror2D { var x = 0.0, y = 0.0 } extension Vectror2D { static func + (left: Vectr..