안녕하세요. 밀쿄 입니다. 오늘은 flatMap, compactMap에 대해서 알아보겠습니다. flatMap에 쓰임새에 대해서 한 번 보겠습니다. let language = [["C", "C++"], ["Objective-C", "Swift"], ["Java", "Kotlin"]] print(language.flatMap({ $0 })) //결과 //["C", "C++", "Objective-C", "Swift", "Java", "Kotlin"] Sequence에서 각 요소들도 Sequence일 때 Elements를 flat하게 만들어줄 때 쓰곤했었죠. 스위프트 오픈 소스를 보면 다음과 같이 구현되어있습니다. extension Sequence { public func flatMap(_ transform:..
안녕하세요. 밀쿄입니다. 오늘은 rethrows에 대해서 알아보겠습니다. rethrows에 대해 설명하기 위해서는 throws에 대해서 먼저 설명하겠습니다. 다음과 같은 코드가 있습니다. 오늘 이 코드로 우려먹을꺼지만 코드에 억지가 많습니다 참고부탁드립니다. enum EnterResult { case noWaitingLine case accept case reject } protocol WaitingLineProtocl { associatedtype WaitingLine = [String: Ticket] } struct Movie: WaitingLineProtocl { private var name: String public init(name: String) { self.name = name } func..
안녕하세요 밀쿄입니다. 오늘은 제목에서 알 수 있듯이 StackView + ScrollView의 조합에 대해서 살펴보겠습니다. 이렇게 사용하면 스택뷰의 높이에 따라서 자동으로 스크롤되는 화면을 쉽게 만들 수 있습니다. 바로 코드를 보겠습니다. let scrollView = UIScrollView() view.addSubview(scrollView) scrollView.translatesAutoresizingMaskIntoConstraints = false NSLayoutConstraint.activate([ scrollView.widthAnchor.constraint(equalTo: view.safeAreaLayoutGuide.widthAnchor), scrollView.heightAnchor.const..
안녕하세요 밀쿄입니다, 오늘은 translatesAutoresizingMaskIntoConstraints에 대해서 알아보겠습니다. 먼저 애플문서를 보기전에 이름에서 추측해봅시다. translates AutoresizingMask Into Constraints로 쪼개볼 수 있네요. 다시 말하면 AutoresizingMask를 Constraints로 번환한다? 이정도쯤 상상할 수 있겠습니다. 그럼 애플 문서를 보겠습니다, ( 애플문서는 늘 그렇듯 여기 입니다. ) View의 AutoresizingMask가 AutoLayout Constraints으로 변환되는지의 Bool값 이라고 되어 있네요. 저희 상상이 대강 맞았습니다. 그럼 대체 Autoresizing Mask가 무엇이냐가 중요하겠네요. 그럼 그 놈에 ..
안녕하세요. 밀쿄입니다. 오늘은 이진트리에 대해서 알아보겠습니다. 이진 트리는 최소한 2개의 자식 노드를 가지고 있습니다. 그럼 스위프트 코드로 한 번 만들어보겠습니다. 일단 트리는 노드로 구성되어있습니다. 그럼 먼저 노드란 클래스를 구성합니다. 그 후 그 노드가 가지는 값을 표현하는 프로퍼티와 자식노드를 나타내는 프로퍼티가 존재하면 될 것 같습니다. public class BinaryNode { public var value: Element public var leftChild: BinaryNode? public var rightChild: BinaryNode? public init(value: Element) { self.value = value } } 이렇게 해주면 될 것 같습니다. 트리에는 세 가..
안녕하세요. 밀쿄 입니다. 오늘은.leading, trailing, left, right에 대한 이야기를 해볼려고 합니다. 사실 지난번부터 AutoLayout에 대한 이야기를 많이 올리고 있습니다. 아마 코드로 뷰 짜는 방법에 대한 포스팅을 빌드업이라고 생각하시면 될 것 같습니다 그럼 바로 시작하겠습니다. 다들 leading, trailing, left, right를 어떻게 사용하고 있나요? 저는 몇달전까지는 아무 생각없이 아무 구분없이 사용하고 있었는데요. 그럴만한게 leading과 left 아무꺼나 써도 왼쪽에서 출력이 되기 때문입니다. 다음 코드를 보겠습니다. let label = UILabel() label.text = "Leading" label.textColor = .label view.add..
안녕하세요 밀쿄입니다. 오늘은 날짜를 비교하는 방법에 대해서 알아보겠습니다. 제가 날짜를 비교할 때 두 날짜의 차이를 연산해서 0인지 늘 체크했었는데 그것보다 더 간단한 방법이 있더라구요. 오늘은 그거에 대해 알아보겠습니다, 하지만 그거만 하면 글이 짧아질 것 같으니 유용한 팁 하나도 같이 넣어두겠습니다. ○ Date()로 생성한 날짜로 현지 시간에 맞게 출력하고 싶을 때 let date = Date() let dateFormatter = DateFormatter() dateFormatter.dateFormat = "yyyy. MM. dd HH:mm:ss" dateFormatter.timeZone = TimeZone.current print(dateFormatter.string(from: date)) /..
안녕하세요. 밀쿄입니다. 오늘은 오토레이아웃과 관련되어있는 firstBaselineAnchor와 laseBaselineAnchor에 대해서 알아보겠습니다. 이 두 인스턴스 프로퍼티는 좌표값인 Y값과 관련되어있습니다. 그래서 타입이 NSLayoutYAxisAnchor 입니다. 먼저 firstBaselineAnchor부터 애플 문서를 살펴보도록 하겠습니다. View에서 맨 위 텍스트 행의 기준선을 나타내는 레이아웃 앵커라고 되어있습니다. 처음에 읽어보면 쉽사리 감이 오지 않습니다. 저도 그랬습니다. 그럼 코드와 실행 결과로 한 번 살펴보도록 하겠습니다. let baseLabel = UILabel() baseLabel.text = "Base Label\nBase Label\nBase Label" baseLab..
- Total
- Today
- Yesterday
- 스위프트
- Queue
- SEQUENCE
- AutoLayout
- compactMap
- 유니온파인드
- Just
- 자료구조
- 결합연산자
- 스유
- 스택뷰
- CombineLatest
- UIViewControllerRepresentable
- replaceNil
- 삨
- MVC
- swift
- 현업이그리운
- Apple
- ios
- iOSCombine
- programmers
- combine
- BBIK
- 스위프트유아이
- ErrorHandling
- 콤바인
- 텔큐온
- 알고리즘
- SwiftUI
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |