์ „์ฒด ๊ธ€ 118

5์ฃผ์ฐจ_iOS ์•ฑ ๊ฐœ๋ฐœ ์ž…๋ฌธ_2์ผ์ฐจ_ToDoList ์•ฑ ๋งŒ๋“ค๊ธฐ_์„ ํƒ ๊ตฌํ˜„

์˜ค๋Š˜์€ Standard ๋ฐ˜ ๊ณผ์ œ๋ฅผ ์‹œ์ž‘ํ–ˆ๋‹ค. ๋‚ด์ผ 4์‹œ ์ „๊นŒ์ง€ ์—ฐ์Šตํ•ด๋ด์•ผํ•ด์„œ ์šด๋™ ๋‹ค๋…€์™€์„œ ์˜ค๋Š˜ ๋ฐค์—๋„ ์ด์–ด์„œ ํ•ด์•ผํ•  ๊ฒƒ ๊ฐ™๋‹ค..^0^ ์˜ค๋Š˜์€ ์ง€๋‚œ ๊ฒŒ์‹œ๊ธ€(TodoList ๋งŒ๋“ค๊ธฐ)์— ์ด์–ด์„œ '์ˆ˜์ •ํ•˜๊ธฐ' ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  Standard ๋ฐ˜ ๊ณผ์ œ ๋‚ด์šฉ ๊ฐ„๋žตํ•˜๊ฒŒ ์ •๋ฆฌํ•  ์ƒ๊ฐ์ด๋‹ค.๐Ÿง Todo ์ˆ˜์ •ํ•˜๊ธฐ ์ˆ˜์ •ํ•˜๊ธฐ ๊ธฐ๋Šฅ์€ ์ด์ „์— ๋“ฑ๋กํ•˜๊ธฐ์™€ ๊ฑฐ์˜ ๋™์ผํ•˜๋‹ค! ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ tableView ์ž…๋ ฅํ•ด์„œ 'Tells the delegate a row is selected.'๋ผ๊ณ  ์ ํ˜€์žˆ๋Š” ๊ฑฐ ์„ ํƒ! ์ด์ œ ์ฝ”๋“œ์— ๋„ฃ์€ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด ์ค˜์•ผํ•œ๋‹ค. ์ด์ „์— ์ถ”๊ฐ€ ๋ฒ„ํŠผ ๋ˆ„๋ฅด๋ฉด, ๋“ฑ๋กํ•˜๊ธฐ alert ๋„์› ์„ ๋•Œ์™€ ๊ฑฐ์˜ ๋™์ผํ•˜๋‹ค. ๊ฐ€์ง€๊ณ ์™€์„œ ๋‚ด์šฉ๊ณผ ์ด๋ฆ„์„ ๋ฐ”๊ฟ”์ฃผ๊ณ , ์ˆ˜์ •ํ•ด๋„ ์Šค์œ„์น˜ on/off ์ƒํƒœ๋Š” ๋ณ€ํ•˜์ง€ ์•Š์•„์•ผ ..

5์ฃผ์ฐจ_iOS ์•ฑ ๊ฐœ๋ฐœ ์ž…๋ฌธ_1์ผ์ฐจ_ToDoList ์•ฑ ๋งŒ๋“ค๊ธฐ_ํ•„์ˆ˜ ๊ตฌํ˜„

TIL>์˜ค๋Š˜์€ TodoList ๋งŒ๋“ค๊ธฐ ๊ฐœ์ธ๊ณผ์ œ ๊ตฌํ˜„ ๊ณผ์ •์„ ์ฐจ๊ทผ์ฐจ๊ทผ ์ •๋ฆฌํ•ด ๋ณด๋ ค๊ณ  ํ•œ๋‹ค.โ˜บ๏ธ์ด์ „์— ์ผ๋˜ ์ฝ”๋“œ ๋‹ค์Œ ๋‚  ๊นŒ๋จน๊ณ ..๋‹ค์‹œ ๋‡Œ ๋ฆฌ์…‹^-^ ํ•˜๋ฃจ ์ข…์ผ ๋ฉ˜ํƒˆ ๋ฐ”์‚ฌ์‚ฌ์‚ญ๐Ÿ’ช๐Ÿป๋‹ค์‹œ ์ฐจ๊ทผ์ฐจ๊ทผ ์‹œ์ž‘..!^^์—ญ์‹œ ์ •๋ฆฌ๋ฅผ ํ•ด์•ผ ์•ˆ ๊นŒ๋จน๊ณ  ๊ธฐ์–ต์— ์˜ค๋ž˜ ๋‚จ๋Š” ๊ฒƒ ๊ฐ™๋‹ค.ใ…Žใ…Ž ์ด๋ฒˆ TodoList ์•ฑ ๋งŒ๋“ค๊ธฐ ๊ฐœ์ธ๊ณผ์ œ ์†Œ๊ฐœ๋Š”(4์ฃผ์ฐจ_iOS ์•ฑ ๊ฐœ๋ฐœ ์ž…๋ฌธ_5์ผ์ฐจ) ๊ฒŒ์‹œ๋ฌผ์— ์ •๋ฆฌ๋˜์–ด์žˆ๋‹ค.  4์ฃผ์ฐจ_iOS ์•ฑ ๊ฐœ๋ฐœ ์ž…๋ฌธ_5์ผ์ฐจ_ToDoList ๋งŒ๋“ค๊ธฐ_TIL์˜ค๋Š˜์€ 4์ฃผ์ฐจ ์•ฑ ๊ฐœ๋ฐœ ์ž…๋ฌธ ๊ฐœ์ธ๊ณผ์ œ๋ฅผ ์‹œ์ž‘ํ–ˆ๋‹ค.๐Ÿ˜ƒ ํ•˜..์–ด๋ ต๋‹ค..ใ…Žใ…Žใ…Ž.. ์˜ค๋Š˜ ์–ด๋А ์ •๋„ ๊ตฌํ˜„ํ•˜๊ธด ํ–ˆ๋Š”๋ฐ, ํ•„์ˆ˜ ๊ตฌํ˜„๊นŒ์ง€ ์™„์„ฑํ•˜๋ ค๋ฉด ์•„์ง ํ•  ๊ฒŒ ๋งŽ์•„์„œ ๊ตฌํ˜„ํ•œ ๋ถ€๋ถ„๊ณผ ์ฝ”๋“œ ์ •๋ฆฌ๋Š” ๋‚˜์ค‘์— ๋‹คyegenie-coding.tistory.com ์Šคํ† ๋ฆฌ๋ณด๋“œ - ๊ธฐ๋ณธ UI ๊ตฌ์„ฑ ..

4์ฃผ์ฐจ_iOS ์•ฑ ๊ฐœ๋ฐœ ์ž…๋ฌธ_5์ผ์ฐจ_ToDoList ๋งŒ๋“ค๊ธฐ_TIL

์˜ค๋Š˜์€ 4์ฃผ์ฐจ ์•ฑ ๊ฐœ๋ฐœ ์ž…๋ฌธ ๊ฐœ์ธ๊ณผ์ œ๋ฅผ ์‹œ์ž‘ํ–ˆ๋‹ค.๐Ÿ˜ƒ ํ•˜..์–ด๋ ต๋‹ค..ใ…Žใ…Žใ…Ž.. ์˜ค๋Š˜ ์–ด๋А ์ •๋„ ๊ตฌํ˜„ํ•˜๊ธด ํ–ˆ๋Š”๋ฐ, ํ•„์ˆ˜ ๊ตฌํ˜„๊นŒ์ง€ ์™„์„ฑํ•˜๋ ค๋ฉด ์•„์ง ํ•  ๊ฒŒ ๋งŽ์•„์„œ ๊ตฌํ˜„ํ•œ ๋ถ€๋ถ„๊ณผ ์ฝ”๋“œ ์ •๋ฆฌ๋Š” ๋‚˜์ค‘์— ๋‹ค ์™„์„ฑํ•˜๊ณ  ํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ๊ธˆ์š”์ผ์ด๋ผ ํ”ผ๊ณคํ•˜๊ธฐ๋„ ํ•˜๊ณ , ๋จธ๋ฆฌ๊ฐ€ ์ž˜ ์•ˆ๋Œ์•„๊ฐ„๋‹ค..ใ…Žใ…Ž.. ์‚ด์ง ๋ฉ˜-๋ถ•^0^๐Ÿคฏ ์ž ๊น ๋จธ๋ฆฌ ์‹ํž ๊ฒธ TIL ์“ฐ๋Ÿฌ..ใ…Ž ์˜ค๋Š˜์€ ๊ฐœ์ธ ๊ณผ์ œ '๋ฉ”๋ชจ์•ฑ(My Todo List)' ํ•„์ˆ˜ & ์„ ํƒ ๊ตฌํ˜„ ์‚ฌํ•ญ์— ๋Œ€ํ•ด์„œ ๊ฐ„๋žตํ•˜๊ฒŒ ์š”์•ฝํ•ด์„œ ์ ์–ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ๋ฉ”๋ชจ์•ฑ ๋งŒ๋“ค๊ธฐ (My Todo List) Todo List ํ™”๋ฉด ๋งŒ๋“ค๊ธฐ (ํ‚ค์›Œ๋“œ: UIButton, UITableView) โ–ท Storyboard๋ฅผ ํ™œ์šฉํ•ด์„œ ๊ธฐ๋ณธ Todo List ํ™”๋ฉด UI ๊ตฌ์„ฑํ•˜๊ธฐ โ–ท UIButton๊ณผ UITableView ํ™œ์šฉํ•˜์—ฌ ํ™”..

4์ฃผ์ฐจ_iOS ์•ฑ ๊ฐœ๋ฐœ ์ž…๋ฌธ_4์ผ์ฐจ_๊ฐœ์ธ ๊ณผ์ œ ์‹œ๋„_TIL

์˜ค๋Š˜์€ ๋‹ค์Œ ์ฃผ๊นŒ์ง€ ์ œ์ถœํ•ด์•ผํ•˜๋Š” ๊ณผ์ œ ๋ถ„์„์„ ํ•ด๋ดค๋‹ค. UI๋ฅผ ์ฝ”๋“œ๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๊ฑด ๊ฐ•์˜๋กœ ์„ค๋ช…ํ•ด์ฃผ์…”์„œ ๋งŽ์ด ์—ฐ์Šตํ–ˆ๋Š”๋ฐ, ๋ง‰์ƒ ๊ณผ์ œ๋ฅผ ์‹œ์ž‘ํ•˜๋ ค๋‹ˆ๊นŒ ์–ด๋ ค์› ๋‹ค.. ํŠนํžˆ, ์Šคํ† ๋ฆฌ๋ณด๋“œ๋ฅผ ํ™œ์šฉํ•ด์„œ ํ•˜๋ ค๋‹ˆ๊นŒ ๋จธ๋ฆฌ๊ฐ€ ๋‹ค์‹œ ํ•˜์• ์กŒ๋‹ค.๐Ÿฅน ๊ทธ๋ž˜์„œ ๋ธ”๋กœ๊ทธ๋ž‘ ์œ ํŠœ๋ธŒ ๊ฐ•์˜ ๋ณด๊ณ  ์ผ๋‹จ ์ฝ”๋“œ ๊ตฌํ˜„ํ•˜๋Š”๋ฐ ์ต์ˆ™ํ•ด์ ธ์•ผํ•  ๊ฒƒ ๊ฐ™์•„์„œ ์˜ค๋Š˜์€ ํ…Œ์ด๋ธ” ๋ทฐ ํ™œ์šฉํ•˜๋Š” ์˜์ƒ์„ ๋”ฐ๋ผ ์ณ๋ดค๋‹ค. ๊ณผ์ œ๋Š” ๋ณธ๊ฒฉ์ ์œผ๋กœ ๋‚ด์ผ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•  ๊ฒƒ ๊ฐ™๋‹ค. TableView & TextField ์—ฐ์Šตํ•˜๋‹ค๊ฐ€ ๋ฐœ๊ฒฌํ•œ ๋ฒ„๊ทธ ํ•œ๊ธ€ ์ž์Œ ๋ชจ์Œ ๋ถ„๋ฆฌ ํ˜„์ƒ.. ์Œ..? ์™œ์ด๋Ÿฌ์ง€..? (๋‹นํ™ฉ..) ์žํŒ์œผ๋กœ ์ณ๋ณด๊ณ , ํ‚คํŒจ๋“œ๋กœ ์ณ๋ด๋„ ๋˜‘๊ฐ™์Œ๐Ÿ˜ข ๊ฒ€์ƒ‰ํ•ด๋ณด๋‹ˆ, XCode 15 ๋ฒ„์ „ ์ดํ›„์— iOS 17 ๋ฒ„์ „์—์„œ ๋‚˜ํƒ€๋‚˜๋Š” ๋ฒ„๊ทธ ํ˜„์ƒ์ด๋ผ๋Š”๋ฐ, iOS 16 ๋ฒ„์ „์—์„œ๋Š” ๋ฌธ์ œ ์—†์ด ๋Œ์•„๊ฐ„๋‹ค๋Š” ๋ง์ด ์žˆ์–ด์„œ ํ•ด..

[Swift] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค_์ฝœ๋ผ ๋ฌธ์ œ

n์€ ํ˜„์žฌ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ฝœ๋ผ์˜ ์ˆ˜, b๋Š” a๊ฐœ์˜ ๋นˆ ๋ณ‘์„ ๊ฐ€์ ธ์˜ค๋ฉด ๋Œ๋ ค์ฃผ๋Š” ์ฝœ๋ผ์˜ ์ˆ˜์ด๋‹ค. nowCoke๊ฐ€ a์ด์ƒ์ธ ๊ฒฝ์šฐ๊ฐ€ true์ผ ๋•Œ, while๋ฌธ์„ ๋Œ๋ ค์คฌ๋‹ค. ํ˜„์žฌ ์ฝœ๋ผ ์ˆ˜์—์„œ a๋ฅผ ๋‚˜๋ˆˆ ๋ชซ์— b๋ฅผ ๊ณฑํ•ด์ฃผ๋ฉด, ํ˜„์žฌ ๋งˆํŠธ์— ๋นˆ ๋ณ‘์„ ๊ฐ€์ ธ๊ฐ€์„œ ๋Œ๋ ค๋ฐ›๋Š” ์ฝœ๋ผ ์ˆ˜๊ฐ€ ๋‚˜์˜จ๋‹ค. ์ด ์ฝœ๋ผ ์ˆ˜๋ฅผ totalCokeCount์— ๋”ํ•ด์ฃผ์—ˆ๋‹ค. ํ˜„์žฌ ์ฝœ๋ผ ์ˆ˜์—์„œ a๋ฅผ ๋‚˜๋ˆˆ ๋ชซ์— a๋ฅผ ๊ณฑํ•ด์ฃผ๋ฉด, ๋งˆํŠธ๊ฐ€ ๊ฐ€์ง€๊ณ  ๊ฐ„ ๋นˆ ๋ณ‘์˜ ์ˆ˜๊ฐ€ ๋‚˜์˜จ๋‹ค. nowCoke์— ์ด ๋นˆ ๋ณ‘์˜ ์ˆ˜๋ฅผ ๋นผ์ฃผ๊ณ , ๋Œ๋ ค๋ฐ›์€ ์ฝœ๋ผ ์ˆ˜๋ฅผ ๋”ํ•ด์ฃผ๋ฉด, (๊ตํ™˜ํ•˜์ง€ ์•Š์€ ๋‚˜์˜ ์ฝœ๋ผ + ๋งˆํŠธ์—์„œ ๋Œ๋ ค๋ฐ›์€ ์ฝœ๋ผ)๊ฐ€ ๋œ๋‹ค. ์ด nowCoke๊ฐ€ a๋ณด๋‹ค ์ž‘์•„์งˆ ๋•Œ๊นŒ์ง€ ๊ณ„์† while๋ฌธ์„ ๋Œ๋ฆฌ๊ฒŒ ๋˜๋ฉด, totalCokeCount์— ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ์ด ์ฝœ๋ผ์˜ ๊ฐœ์ˆ˜๊ฐ€ ๋“ค์–ด๊ฐ€๊ฒŒ ๋œ๋‹ค.

[Swift] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค_์ •์ˆ˜๋ฅผ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ๋ฐฐ์น˜ํ•˜๊ธฐ

String(n)์„ ํ•˜๋ฉด, ["1", "1", "8", "2", "7", "2"] ์ด๋ ‡๊ฒŒ [String.Element] ํƒ€์ž…์ด ๋œ๋‹ค. .sorted(by: >)๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ์„ ํ•ด์ฃผ๊ณ , ๋‹ค์‹œ String์œผ๋กœ ๊ฐ์‹ธ์ฃผ๋ฉด, ๋‚ด๋ฆผ์ฐจ์ˆœ๋œ String ํƒ€์ž…์ด ๋œ๋‹ค. ํ•˜์ง€๋งŒ, ๋ฆฌํ„ด๊ฐ’์ด Int64์ด์–ด์•ผ ํ•˜๋ฏ€๋กœ ๋‹ค์‹œ Int64๋กœ ๊ฐ์‹ธ์„œ ๋ณ€ํ™˜ํ•ด์ฃผ๋ฉด ์˜ต์…”๋„ Int64 ํƒ€์ž…์ด ๋œ๋‹ค. Int64(String(String(n).sorted(by: >)))! ์ด๋ ‡๊ฒŒ ๊ฐ•์ œ๋กœ unwrapping ํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ, guard๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ unwrapping ํ•ด์ฃผ์—ˆ๋‹ค.