ios(17)
-
iOS - ๊ฐ์ ์ธ๋ํ์ ๋ํ ๊ณ ์ฐฐ(with map)
iOS - ๊ฐ์ ์ธ๋ํ์ ๋ํ ๊ณ ์ฐฐ(with map) ๊ฐ์ ์ธ๋ํ์ ๋ฌด์์ด๊ณ , ์ธ์ ์จ์ผํ ๊น? ์ค์ํํธ๋ Optional์ด๋ผ๋ ํ์ ์ด ์๋ค. ์ด๋ ๊ฐ์ด ์์์ ๋ํ๋ด๋ ํ์ ์ธ nil๊ณผ ์ด๋ ํ ๊ฐ์ด ํฌ๋ช ํ ๋ง๊ณผ๊ฐ์ด wrapping๋์ด์์์ ๋ํ๋ด๋ some(Type) ๋ ๊ฐ์ง๋ฅผ ๋ด์ ์ ์๋ค. ๋ณดํต Optional์ ์ฌ์ฉํ๋ ์ด์ ๋ ๋ถํ์คํ ๋ฐ์ดํฐ์ ๋ํด ์์ ํ๊ฒ ๊บผ๋ด์ ์ฌ์ฉํ ๋ ์ฌ์ฉํ๋ค. ์ฆ User๋ผ๋ ๋น๋๊ธฐ Struct๊ฐ์ ๊ฐ์ง ๋ Optional๋ก ํ๋ฒ ๋ฌถ์์ผ๋ก์จ ์ด User๋ผ๋ ๊ฐ์ ์ฌ์ฉํ๋ ค๋ฉด if let ๋ฐ์ธ๋ฉ๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ์ ๊ฑฐ์ณ ๊บผ๋ด์ผ ํ๋ค. ์ด๋ฒ ํฌ์คํ ์์ ์์๋ณผ ๊ฒ์ ์์ ํ๊ฒ ๊บผ๋ด๋ ๋ฐฉ๋ฒ์ด ์๋ ๋ถ์์ ํ๊ฒ ๊บผ๋ด๋ ๋ฐฉ์(๊ฐ์ ์ธ๋ํ)์ด๋ค. ๋ถ์์ ํ๋ค๊ณ ๊ผญ ์ ์ข์ ๋ฐฉ๋ฒ์ ์๋๋ฉฐ, ๊ฐ๋ฐ์์ ..
2022.12.03 -
iOS - xib๋ฅผ ์ด์ฉํด์ Custom View ๋ง๋ค๊ธฐ
iOS - xib๋ฅผ ์ด์ฉํด์ Custom View ๋ง๋ค๊ธฐ Custom View(with: xib) UITableViewController๋ UICollectionViewController๋ฅผ ์์ํด์ ๋ง๋ค๋ฉด Cocoa Touch Class์์ xibํ์ผ์ด ๊ฐ์ด ๋ง๋ค์ด์ง๋๋ก ํ ์ ์์ง๋ง UIView๋ฅผ ์์ํ ์ํ์์๋ ๊ฐ์ด ๋ง๋ค ์ ์๊ธฐ ๋๋ฌธ์ ๋ฐ๋ก ๋ง๋ค์ด์ผ ํ๋ค. ๊ทธ๋ฆฌ๊ณ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ง๋ค๋ฉด ViewController๋ชจ์์ ํ๋ฉด์ด ๋์ค๊ฒ ๋๋๋ฐ ์ด ํฌ๊ธฐ๋ฅผ ์์ ๋กญ๊ฒ ๋ฐ๊พธ๊ธฐ ์ํด Size๋ฅผ Freedom์ผ๋ก ๋ฐ๊ฟ์ฃผ๋ฉด ๋๋ค. ์ดํ File's Owner๋ฅผ ํด๋ฆญํด์ ์ค๋ฅธ์ชฝ์ 4๋ฒ์งธ ํญ์ผ๋ก ๊ฐ์ Class๋ช ์ ์ฐ๊ฒฐ์์ผ์ค ํด๋์ค๋ช ์ผ๋ก ๋ฑ๋กํ๋ฉด ๋์ด๋ค.
2022.10.10 -
Swift - ๋ฌธ์์ด ์ธ๋ฑ์ค
Swift - ๋ฌธ์์ด ๋ฌธ์์ด์ด๋? ์ค์ํํธ์์ ๋ฌธ์์ด์ ์๋ฐ์ดํ ์์ ๋ฌธ์๋ค์ ์ฐ๊ฒฐํ ๊ฒ์ ์๋ฏธํ๋ค. ๋ฌธ์๋ค์ด ์ ์ฅ๋ ๋๋ ์ ๋์ฝ๋ ๋ฌธ์๋ค๋ก ๊ตฌ์ฑ๋๋๋ฐ ์ด๋ค์ UTF-32๋ก ์ ์ฅ์ด ๋๋ค. ๋ง์ฝ 32๋นํธ๊ฐ ์๋ 16๋นํธ๋ 8๋นํธ๋ก ์ ์ฅํ๊ณ ์ถ๋ค๋ฉด String์ ๋ด์ฅ๋ฉ์๋์ธ utf8์ด๋ utf16์ ์ฌ์ฉํ๋ฉด ๋๋ค. let str = "Hi๐" for _8bit in str.utf8 { print("\(_8bit)", terminator: " ") // output: 72 105 240 159 145 143 } ๋ฌธ์์ด์ ์๋ธ์คํฌ๋ฆฝํ ๋ฌธ์์ด์ ๋ฐฐ์ด๊ณผ ๋ค๋ฅด๊ฒ ์๋ธ์คํฌ๋ฆฝํ ์ ์ง์ํ์ง ์๋๋ค. "abc haha"๋ผ๋ ๋ฌธ์์ด์ด ์๊ณ ๋ฌธ์๋ฅผ ํ์ํ ๋ ๊ฐ๊ฐ์ UTF-8 ๊ธฐ์ค์ผ๋ก ์ฝ์ด์ผํ ์ง UTF-16 ๊ธฐ์ค์ผ๋ก ์ฝ์ด์ผํ ์ง..
2022.10.04 -
Swift - components, split
Swift - components, split components, split ๋ ๋ค ๋๊ฐ์ ๊ฑฐ ์๋์ผ? swift์์ ๋ฌธ์์ด์ ํน์ ๋ฌธ์๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฐฐ์ด์ ๋ง๋ค์ด์ฃผ๋ ๋ฉ์๋๋ components์ split์ด ์๋ค. ๊ทธ๋ ๋ค๋ฉด ๋ ๊ฐ์ ์ฐจ์ด์ ์ ๋ฌด์์ผ๊น? ๋จผ์ components๋ ์๋์ ๊ฐ๋ค. ๋จ์ํ ๋ฌธ์๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฌธ์์ด ๋ฐฐ์ด์ ๋ง๋ค์ด ์ฃผ๋ ๊ฒ์ด๋ค. ์ฌ์ฉ ์์ import Foundation let str = "a0b1c3" print(str.components(separatedBy: ["b", "c"])) // output: ["a0", "1", "3"] split์ components๋ณด๋ค ์ธ์๊ฐ ๋ง๊ณ ๋ ๊ธฐ๋ฅ์ด ๋ง๋ค. ๋์ ๋๊ฒ ๋ค๋ฅธ ์ ์ ๋ ๊ฐ์ง๊ฐ ์๋ค. 1. ์ธ์๋ฅผ ๋ฐ์ ์ฐธ์ธ์ง ๊ฑฐ์ง์ธ์ง๋ฅผ ํ์ธ..
2022.09.30 -
Swift - zip
Swift - zip zip์ด๋? Zip์ ํ์ผ์ ์์ถํ ๋ ์ฐ๋ ์ฉ์ด๋ก ์ค์ํํธ์์ zip์ ๋ ๊ฐ์ ์ปฌ๋ ์ ์ ๋ฌถ์ด์ ํ๋์ ์์์์ผ๋ก ๋ง๋๋ ๊ฒ์ ๋งํ๋ค ๋ ๊ฐ์ง์ ์ปฌ๋ ์ ๋ค์ ๋น๊ตํ๋ฉด์ ์ถ๋ ฅํ๊ฑฐ๋ ์ธ๋ถ์ ์ํฅ์ ์ฃผ๊ณ ์ถ์๋ zip์ ์ด์ฉํด์ for๋ฌธ์ ๋๋ ค์ ๋ง์ด ์ฌ์ฉํ๋ค. zip ์ฌ์ฉ let words = ["apple", "google", "facebook"] let nums = (1...3) print(zip(words, nums)) ์ถ๋ ฅ ๊ฐ Zip2Sequence๋ผ๋ ๋ ๊ฐ์ ์ปฌ๋ ์ ์ด ๋ฌถ์ฌ์ง ํ์ ์ด ์ถ๋ ฅ์ด ๋๋ค. ์ด ๊ฐ์ for๋ฌธ์ ํตํด ์ฒ๋ฆฌํ๋ฉด ๋๋ค. let words = ["apple", "google", "facebook"] let nums = (1...3) for (i, (word, n..
2022.09.30 -
Swift - ์์ด๊ณผ ์กฐํฉ ๊ตฌํํ๊ธฐ
Swift - ์์ด๊ณผ ์กฐํฉ ๊ตฌํํ๊ธฐ ์์ด๊ณผ ์กฐํฉ์ ์ ์ง์ ๊ตฌํํ๋์..? ์ค์ํํธ์๋ ์์ด๊ณผ ์กฐํฉ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํํ๋ก ์ ๊ณตํ๋ ๊ฒ์ด ์๋ค. ๋๋ฌธ์ ์ฝ๋ฉํ ์คํธ์์ ์ฌ์ฉํ ๋ ์ง์ ๊ตฌํํด์ ์ฌ์ฉํด์ผ ํ๋ค...ใ ์ ์ฒด์ ์ธ ๋งฅ๋ฝ์ ์ดํดํ๋ฉด ์ฝ๊ธฐ ๋๋ฌธ์ ์ ๋ฆฌํด์ ํ์ํ ๋๋ง๋ค ์ฌ์ฉํ๊ณ ์ ์ ๋ฆฌํ๋ค ์์ด ์์ด์ ์๋ก ๋ค๋ฅธ n๊ฐ์ ์์์์ r๊ฐ๋ฅผ ์ค๋ณต์์ด ์์์ ์๊ด์๊ฒ ์ ํํ๋ ํน์ ๋์ดํ๋ ๊ฒ์ ์์ด์ด๋ผ๊ณ ํ๋ค. ํต์ฌ์ ์์๊ฐ ์กด์ฌํ๊ธฐ ๋๋ฌธ์ [1, 2, 3, 4]์์ [1, 2]์ [2, 1]์ ๊ตฌ๋ถํด์ ์นด์ดํธํ๋ ๊ฒ์ด ํต์ฌ์ด๋ค. func permutation(_ target: [String], _ targetNum: Int) { // ์์ด์ด ๋๋ ์์ ์กฐํฉ์ ๋ด๋ ๊ณณ var results: [[String]] ..
2022.09.29