Programming/RxSwift
RxSwift: UITextField.text์ ๋ณ๊ฒฝ์ ๊ฐ์งํ์ง ๋ชปํ ๋
RxSwift: UITextField.text์ ๋ณ๊ฒฝ์ ๊ฐ์งํ์ง ๋ชปํ ๋
2021.06.02ํ์ฌ ํ๊ณ ์๋ ํ ์ด ํ๋ก์ ํธ์์ ์ฌ์ฉ์์๊ฒ ์ด๋ชจ์ง๋ฅผ ์
๋ ฅ๋ฐ๋๋ค. ์ผ๋ฐ์ ์ธ ํค๋ณด๋๋ก ์
๋ ฅ๋ฐ๋ ๊ฒ์ด ์๋๋ผ ISEmojiView ๋ผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋๋ฐ, ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ EmojiViewDelegate๋ฅผ ๊ตฌํํด์ผ ํ๋ค. ๊ทธ์ค์์ ํต์ฌ์ ์ด ๋ถ๋ถ์ด๋ค. // callback when tap a emoji on keyboard func emojiViewDidSelectEmoji(_ emoji: String, emojiView: EmojiView) { textView.insertText(emoji) } ๋๋ ๋ฑ ํ๋์ ์ด๋ชจ์ง๋ง ์
๋ ฅ๋ฐ๊ณ ์ถ์ด์, insertText()๋ฅผ ํธ์ถํ๋ ๋์ ์ emojiField.text = emoji๋ก ๋ณ๊ฒฝํ๋ค. ๊ทธ๋ฐ๋ฐ, ์ฌ๊ธฐ์ ๋ฌธ์ ์ ์ด ์๊ฒผ๋๋ฐ emojiField์ ๋ฐ์ธ๋ ํ P..
RxSwift: Single, Maybe, Completable
RxSwift: Single, Maybe, Completable
2021.06.02Single Single ์ ํน์ํ Observable ์ด๋ค. .success(Value) ์ด๋ฒคํธ ๋๋ .error ์ค ํ ๋ฒ๋ง ๋ด๋ณด๋ผ ์ ์๋ ์ํ์ค๋ฅผ ๋ํ๋ธ๋ค. ๋ด๋ถ์ ์ผ๋ก .success ๋ .next + .completed ๋ก ์ด๋ฃจ์ด์ ธ์๋ค. ์ด๋ฌํ ์ข
๋ฅ์ ํน์ฑ์ ํ์ผ ์ ์ฅ, ํ์ผ ๋ค์ด๋ก๋, ๋์คํฌ์์ ๋ฐ์ดํฐ ๋ก๋ ๋๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ฐ์ ์์ฑํ๋ ๋ชจ๋ ๋น๋๊ธฐ ์์
๊ณผ ๊ฐ์ ์ํฉ์์ ์ ์ฉํ๋ค. ์ฑ๊ณต ์ ์ ํํ ํ๋์ ์์๋ฅผ ๋ด๋ณด๋ด๋ ๋ํ ์์
์ ์ฌ์ฉ๋๋ค. ์ํ์ค์์ ๋จ์ผ ์์๋ฅผ ์ฌ์ฉํ๋ ค๋ ์๋๋ฅผ ๋ ์ ํํํ๊ณ ์ํ์ค๊ฐ ๋ ์ด์์ ์์๋ฅผ ๋ฐฉ์ถํ๋์ง ํ์ธํ๊ธฐ ์ํด ๊ตฌ๋
์ค๋ฅ๊ฐ ๋ฐ์๋๋ค. Maybe Observable์ด ์ฑ๊ณต์ ์ผ๋ก ์๋ฃ๋๋ฉด ๊ฐ์ ๋ฐฉ์ถํ์ง ์์ ์ ์๋ค๋ ์ ์ผํ ์ฐจ์ด์ ์ ์ ์ธํ๊ณ ๋ Single ..
RxSwift: ํ์ต ์ ๋ฆฌ
RxSwift: ํ์ต ์ ๋ฆฌ
2021.05.14์ต์ ๋ฒ ํจํด 1:N ๊ด๊ณ๋ก ์ด๋ฃจ์ด์ง, ๊ด์ฐฐ ํจํด ๊ฐ์ฒด๋ฅผ ๊ตฌ๋
ํ๋ฉด ์ต์ ๋ฒ๊ฐ ์ํ๋ฅผ ์๋ ค์ค ํจ์ํ ํ๋ก๊ทธ๋๋ฐ 1๊ธ ๊ฐ์ฒด ๋ณ์๋ ์์์ ์ ์ฅ์ ํ ์ ์์ด์ผ ํจ ํจ์์์ return ํ ์ ์์ด์ผ ํจ ํ๋ผ๋ฏธํฐ๋ก ์ ๋ฌํ ์ ์์ด์ผ ํจ ์์ ํจ์ /* ํ์จ ๊ณ์ฐํด์ฃผ๋ ํ๋ก๊ทธ๋จ ์ด ์ฝ๋๋ ์์ ํจ์๋ผ๊ณ ํ ์ ์๋ค. → ์ ์ญ ์ํ์ ์์กด = ์ฐธ์กฐ ํฌ๋ช
์ฑ์ด ์๋ค */ var rate = 1120 func krw(usd: Int) -> Int { return usd * rate } krw(usd: 2) // 2240 krw(usd: 3) // 3360 rate = 1130 krw(usd: 2) // 2260 krw(usd: 3) // 3390 ReactiveX ๊ด์ฐฐ ๊ฐ๋ฅํ ์คํธ๋ฆผ์ ์ด์ฉํ ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ API Re..