분류 전체보기(59)
-
[Swift] 배열 index 조회 및 삭제하기
배열(정확히는 Collection)에서 값을 조회하는 방법을 알아보자. firstIndex(of:) 는 배열의 앞에서부터 조회해서 첫번째 일치하는 값의 index를 반환한다. lastIndex(of:) 는 배열의 뒤에서부터 조회해서 첫번째 일치하는 값의 index를 반환한다. var arr: [String] = ["일번", "이번", "삼번", "사번", "이번", "육번"] if let firstIndex = arr.firstIndex(of: "이번") { print(firstIndex) // 1 } if let lastIndex = arr.lastIndex(of: "이번") { print(lastIndex) // 4 } 반환된 값은 Int? 이다. (조회했을 때 일치하는 값이 없을 경우가 있기때문에 ..
2020.08.13 -
[RxSwift] Combining Operator
startsWith Observable 시퀀스 앖에 다른 값 하나를 추가해준다 let disposeBag = DisposeBag() let numbers = Observable.of(2,3,4) let observable = numbers.startWith(1) observable.subscribe(onNext: { print($0) }).disposed(by: disposeBag) // 1 // 2 // 3 // 4 concat startWith와 비슷하다. startWith는 하나의 요소가 맨 앞에 추가되지만, concat은 여러 개의 요소가 앞 뒤로 추가 가능하다. let first = Observable.of(1,2) let second = Observable.of(4,5) let observab..
2020.04.25 -
[RxSwift] Transforming Operator
toArray completed가 된 시점 까지의 데이터를 array로 바꿔서 emit한다. Observable.of(1,2,3,4,5) .toArray() .subscribe(onSuccess: { print($0) }) // [1, 2, 3, 4, 5] 영상에는 .toArray()가 Observable인데 RxSwift 5.0부터는 Single로 바뀐 듯 하다. 그래서 .subscribe(onNext: ) 가 안됨.. map swift에서 사용하는 map과 같다. 다른 것이 있다면 observable하게 작동한다는 점? Observable.of(1,2,3,4,5) .map { return $0 * 2 }.subscribe(onNext: { print($0) }).disposed(by: disposeB..
2020.04.18 -
[함수형 프로그래밍] Maybe & Either
Maybe 값의 부재 가능성을 표현 funtor이자 monad 값이 nil로 변할 가능성이 없는 transform의 경우 map사용(functor) 값이 nil로 변할 가능성이 있는 transform의 경우 flapMap사용(monad) Optional 이 곧 maybe enum Maybe { case None case Some(A) static func pure(_ value: B) -> Maybe { return .Some(value) func flapMap(_ f: (A) -> Maybe) -> Maybe { switch self { case .None: return .None case .Some(let value): return f(value) } } func map(f: (A) -> B) -> ..
2020.04.10 -
[함수형 프로그래밍] Functor와 Monad
Functor map 함수를 지원하는 컨테이너 타입(map을 구현하는 타입) Context + value + map transform = Functor Context → 어떤 value 가 처해 있는 상태 Collection, Optional 등의 값을 가지는 container 포함하는 value가 generic으로 표현 되어야 함 Value → Context에 넣어지는 실제 내용 Context가 generic으로 표현되기 때문에 어떤 타입의 value라도 사용 가능 Transform → 어떤 값 T를 U로 변환해 주는 function T와 U는 같은 타입이여도 상관 없음 컨테이너에서 값을 뺀 후, 값에 특정 함수를 적용해 타입과 값을 변경하고, 다시 값을 컨테이너에 넣는 것 Array 타입은 map 함..
2020.04.09 -
[Swift] mailto와 MFMailComposeViewController
일하다가 mailto와 MFMail~의 차이점이 뭔지 궁금해져서 찾아봤다. mailto는 메일 앱을 통해메일을 보내는 것이고, MFMailComposeViewController는앱 내에서메일을 보내는 것이다. 메일 계정(설정 - 암호 및 계정)이 없을 경우 MFMailComposeViewController에서 false를 반환한다. class mailTest: MFMailComposeViewControllerDelegate { func sendMail() { let email = "ksmini0212@gmail.com" let subject = "Hello." let bodyText = "It's me" if MFMailComposeViewController.canSendMail() { // 메일 계정이..
2020.04.08