Swift 24

[Swift] ํ”„๋กœํผํ‹ฐ(Property) โ‘  - ์ €์žฅ, ์—ฐ์‚ฐ

- ํ”„๋กœํผํ‹ฐ(Property) : ํด๋ž˜์Šค, ๊ตฌ์กฐ์ฒด ๋˜๋Š” ์—ด๊ฑฐํ˜• ๋“ฑ์— ๊ด€๋ จ๋œ ๊ฐ’์„ ์˜๋ฏธ- ๋ฉ”์„œ๋“œ(Method) : ํŠน์ • ํƒ€์ž…์— ๊ด€๋ จ๋œ ํ•จ์ˆ˜ ํ”„๋กœํผํ‹ฐํ”„๋กœํผํ‹ฐ๋Š” ํฌ๊ฒŒ ์ €์žฅ ํ”„๋กœํผํ‹ฐ, ์—ฐ์‚ฐ ํ”„๋กœํผํ‹ฐ, ํƒ€์ž… ํ”„๋กœํผํ‹ฐ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค.- ์ €์žฅ ํ”„๋กœํผํ‹ฐ(Stored Properties)- ์—ฐ์‚ฐ ํ”„๋กœํผํ‹ฐ(Computed Properties)- ํƒ€์ž… ํ”„๋กœํผํ‹ฐ(Type Properties)• ์ €์žฅ ํ”„๋กœํผํ‹ฐ- ์ธ์Šคํ„ด์Šค์˜ ๋ณ€์ˆ˜ ๋˜๋Š” ์ƒ์ˆ˜๋ฅผ ์˜๋ฏธ (๊ตฌ์กฐ์ฒด์™€ ํด๋ž˜์Šค์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ)• ์—ฐ์‚ฐ ํ”„๋กœํผํ‹ฐ- ๊ฐ’์„ ์ €์žฅํ•œ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ํŠน์ • ์—ฐ์‚ฐ์„ ์‹คํ–‰ํ•œ ๊ฒฐ๊ณผ๊ฐ’์„ ์˜๋ฏธ (ํด๋ž˜์Šค, ๊ตฌ์กฐ์ฒด, ์—ด๊ฑฐํ˜•์— ์“ฐ์ผ ์ˆ˜ ์žˆ์Œ)• ํƒ€์ž… ํ”„๋กœํผํ‹ฐ- ํŠน์ • ํƒ€์ž…์— ์‚ฌ์šฉ๋˜๋Š” ํ”„๋กœํผํ‹ฐ (์ €์žฅ, ์—ฐ์‚ฐ ํ”„๋กœํผํ‹ฐ๋Š” ํŠน์ • ํƒ€์ž…์˜ ์ธ์Šคํ„ด์Šค์— ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ)- ํด๋ž˜์Šค ๋ณ€..

Swift 2024.05.28

[Swift] Delegate ํŒจํ„ด

Delegate Pattern Delegate ํŒจํ„ด์€ ๋””์ž์ธ ํŒจํ„ด ์ค‘ ํ•˜๋‚˜๋กœ๋‹จ์–ด ๋œป ๊ทธ๋Œ€๋กœ '์œ„์ž„ํ•˜๋‹ค'์™€ ๊ฐ™์ด ํ•˜๋‚˜์˜ ๊ฐ์ฒด๊ฐ€ ๋ชจ๋“  ์ผ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ๊ฐ์ฒด๊ฐ€ ๋‹ค๋ฅธ ๊ฐ์ฒด์—๊ฒŒ ์ž์‹ ์˜ ์ผ์„ ์œ„์ž„ํ•˜๋Š” ํ˜•ํƒœ์˜ ๋””์ž์ธ ํŒจํ„ด์ž…๋‹ˆ๋‹ค.1. ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์žฌ์‚ฌ์šฉ์„ฑ์ด ๋›ฐ์–ด๋‚˜๋‹ค.2. ํ”„๋กœํ† ์ฝœ์— ํ•„์š”ํ•œ ๋ฉ”์„œ๋“œ๋“ค์ด ๋ช…์‹œ๋˜์–ด ์ „๋‹ฌ๋œ๋‹ค.3. ์ฒ˜๋ฆฌํ•ด์•ผํ•˜๋Š” ์ผ์˜ ์ผ๋ถ€๋ฅผ ๋‹ค๋ฅธ ๊ฐ์ฒด์—๊ฒŒ ์œ„์ž„ํ•  ์ˆ˜ ์žˆ๋‹ค.์ง€๊ธˆ๊นŒ์ง€ ์•ฑ์„ ๋งŒ๋“ค๋ฉด์„œ, ์•Œ๊ฒŒ ๋ชจ๋ฅด๊ฒŒ ์—ฌ๋Ÿฌ Delegate ํ”„๋กœํ† ์ฝœ์ด ์žˆ์—ˆ์„ ๊ฒ๋‹ˆ๋‹ค.(UITableViewDelegate, UITextFieldDelegate, ๋“ฑ๋“ฑ..)tableViewController๋„ command๋กœ ๋ˆŒ๋Ÿฌ๋ณด๋ฉด, UITableViewDelegate๋ฅผ ์ฑ„ํƒํ•˜์—ฌ ํ”„๋กœํ† ์ฝœ์„ ์ค€์ˆ˜ํ•˜๊ณ  ์žˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.์ด..

Swift/Xcode 2024.05.26

[Swift] UserDefaults

์ž‘์€ ํ”„๋กœ์ ํŠธ๋“ค์„ ๋งค์ผ ํ•˜๋‚˜์”ฉ ๋งŒ๋“ค๋ฉด์„œ,UserDefaults๋กœ ์•ฑ์ด ์ข…๋ฃŒ๋˜์–ด๋„ ๋ฐ์ดํ„ฐ๊ฐ€ ๋‚จ์•„์žˆ์„ ์ˆ˜ ์žˆ๋„๋ก๊ณ„์† ์ €์žฅ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•ด๋ณด๋ ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค.ใ…Žใ…Ž์•„์ง ์ต์ˆ™ํ•˜์ง€๋Š” ์•Š์ง€๋งŒ,์ •๋ฆฌํ•˜๋ฉด์„œ ํ™•์‹คํžˆ ๊ธฐ์–ตํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค!โ˜บ๏ธ UserDefaults๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ์—ฌ๋Ÿฌ ๋ฐฉ์‹ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.๊ทธ ์ค‘ UserDefaults๋Š” ๋‹จ์ผ ๋ฐ์ดํ„ฐ ๊ฐ’(๊ฒฝ๋Ÿ‰)์„ ์ €์žฅํ•˜๋Š”๋ฐ ์ฃผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค!์˜ˆ๋ฅผ ๋“ค๋ฉด, ์ž๋™ ๋กœ๊ทธ์ธ ์—ฌ๋ถ€, ์•Œ๋ฆผ ์ˆ˜์‹  ์—ฌ๋ถ€, ๊ฒฐ์ œ ์—ฌ๋ถ€, ์ด๋ฉ”์ผ, ๋‹‰๋„ค์ž„ ๋“ฑ ์‚ฌ์šฉ์ž ๊ธฐ๋ณธ ์„ค์ •์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค.์ด๋Ÿฌํ•œ ๋ฐ์ดํ„ฐ๋“ค์€ iOS ๋””๋ฐ”์ด์Šค ๊ธฐ๊ธฐ์— ์ €์žฅ๋˜๊ณ , ์•ฑ์„ ์‚ญ์ œํ•˜๊ฒŒ ๋˜๋ฉด ๋ฐ์ดํ„ฐ๋“ค๋„ ํ•จ๊ป˜ ์‚ญ์ œ๋ฉ๋‹ˆ๋‹ค.์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•˜๋Š”์ง€ ๊ฐ„๋‹จํ•œ ์˜ˆ์‹œ๋ฅผ ํ†ตํ•ด ์ •๋ฆฌํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค!๋จผ์ €! Storyboard์—์„œtextField, Button, L..

Swift/Xcode 2024.05.25

[Swift] for-in ๊ณผ forEach

for-in์™€ forEach์˜ ์ฐจ์ด์ For-In LoopsYou use the for-in loop to iterate over a sequence, such as items in an array, ranges of numbers, or characters in a string.-๋ฐฐ์—ด(array), ์ˆซ์ž ๋ฒ”์œ„(ranges of numbers), ๋ฌธ์ž์—ด ์† ๋ฌธ์ž(charcters in a string)์™€ ๊ฐ™์€ ์š”์†Œ๋“ค์„ for-in loop๋ฅผ ํ†ตํ•ด sequence๋ฅผ ๋ฐ˜๋ณตโ–ท array(๋ฐฐ์—ด)let names = ["Anna", "Alex", "Brian", "Jack"]for name in names { print("Hello, \(name)!")}// Hello, Anna!// Hello, Alex!/..

Swift 2024.05.21

[Swift] tag ํ™œ์šฉํ•˜์—ฌ ์ฝ”๋“œ ๊ฐ„์†Œํ™”ํ•˜๊ธฐ

์•ฑ์„ ๋งŒ๋“ค๋‹ค๋ณด๋ฉด,์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฒ„ํŠผ์ด ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ํ•˜๋Š” ํ™”๋ฉด์„ ๋งŒ๋“ค์–ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์„ ๊ฒ๋‹ˆ๋‹ค.์œ„ ํ™”๋ฉด์ฒ˜๋Ÿผ ๋ง์ด์ฃ !์ฒ˜์Œ์— ์ด ์•ฑ์„ ๋งŒ๋“ค ๋•Œ, '๋…ธ๊ฐ€๋‹ค๊ฐ€ ๋”ฐ๋กœ ์—†๊ตฌ๋‚˜.' ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.9๊ฐœ์˜ ๋ฒ„ํŠผ์„ ๋ชจ๋‘ ํ•˜๋‚˜ํ•˜๋‚˜ Outlet ์—ฐ๊ฒฐ์„ ํ•˜๊ณ ,๋ฒ„ํŠผ์ด ํด๋ฆญ๋์„ ๋•Œ, ์–ด๋–ค ๊ธฐ๋Šฅ์„ ํ•ด์•ผํ•˜๋Š”์ง€ 9๊ฐœ์˜ Action์„ ์—ฐ๊ฒฐํ–ˆ๊ฑฐ๋“ ์š”!์ด๋ ‡๊ฒŒ ํ•˜๋‹ค๋ณด๋‹ˆ, ๊ฐ™์€ ์ฝ”๋“œ๊ฐ€ ์—ฌ๋Ÿฌ ๋ฒˆ ์ ํ˜€์žˆ์œผ๋‹ˆ ์ฝ”๋“œ๋„ ์—„์ฒญ ๊ธธ์–ด์กŒ์Šต๋‹ˆ๋‹ค.๐Ÿ˜… ์ด๋Ÿฐ ๋ถ€๋ถ„๋“ค์„ ๊ฐ„์†Œํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ํ•˜๋‚˜ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค!๋ฐ”๋กœ! tag๋ฅผ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.์Šคํ† ๋ฆฌ๋ณด๋“œ์—์„œ ์š”์†Œ๋“ค์„ ํด๋ฆญํ•ด์„œ ์šฐ์ธก ์ธ์ŠคํŽ™ํ„ฐ ์˜์—ญ์„ ์‚ดํŽด๋ณด๋ฉด,์ด๋ ‡๊ฒŒ Tag๊ฐ€ ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.๋งŒ์•ฝ ๋ฒ„ํŠผ 3๊ฐœ๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•œ๋‹ค๋ฉด,๋ฐ”๋กœ ์ด tag๋ฅผ ํ™œ์šฉํ•ด์„œ ์–ด๋–ค ๋ฒ„ํŠผ์„ ๋ˆŒ๋ €๋Š”์ง€  ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.์œ„์—..

Swift/Xcode 2024.05.20

[Swift] ํ•จ์ˆ˜์™€ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ํ™œ์šฉํ•ด์„œ ์ฝ”๋“œ ๊ฐœ์„ ํ•˜๊ธฐ

ํ•จ์ˆ˜UI ์ฝ”๋“œ๋ฅผ viewDidLoad์— ์ž‘์„ฑ์„ ํ•˜๋‹ค๋ณด๋ฉด,ํ•œ๋ˆˆ์— ๋ณด๊ธฐ๋„ ํž˜๋“ค๊ณ , ์ถ”ํ›„์— ์œ ์ง€๋ณด์ˆ˜๋ฅผ ํ•˜๊ธฐ๋„ ์ข‹์ง€ ์•Š์„ ๊ฒ๋‹ˆ๋‹ค.๊ทธ๋ž˜์„œ ๊ฐ ๊ธฐ๋Šฅ๋ณ„๋กœ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด์„œ viewDidLoad์— ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ •๋ฆฌํ•˜์ฃ .์—ฌ๊ธฐ์„œ ์ƒ๊ธฐ๋Š” ๊ถ๊ธˆ์ฆ!๐Ÿค”'์šฐ๋ฆฌ๊ฐ€ ์ง์ ‘ ๋งŒ๋“  designButtonUI๋Š” ํ˜ธ์ถœ์„ ํ•ด์ฃผ๋ฉด์„œ.. ์™œ viewDidLoad ํ•จ์ˆ˜๋‚˜ Action ํ•จ์ˆ˜๋Š” ํ˜ธ์ถœ์„ ํ•˜์ง€ ์•Š์•„๋„ ๋˜๋Š”๊ฑฐ์ง€??'์ด ๋ถ€๋ถ„์— ๋Œ€ํ•ด์„œ ํ•œ ๋ฒˆ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค!!๐Ÿ˜€class ViewController: UIViewController { @IBOutlet var button1: UIButton! @IBOutlet var button2: UIButton! @IBOutlet var button3: UIButton! ..

Swift/Xcode 2024.05.20

[Swift] Storyboard ์‚ฌ์šฉ ์‹œ Outlet ์ด๋ฆ„ ๋ณ€๊ฒฝ ๋ฐฉ๋ฒ•

Storyboard์—์„œ UI๋ฅผ ์งœ๊ณ , Code์— ์—ฐ๊ฒฐํ•  ๋•Œ ์•„์šธ๋ › ์ด๋ฆ„์„ ์ง€์–ด์ค˜์•ผํ•œ๋‹ค.ํ•˜์ง€๋งŒ, ์ž‘์—…์„ ํ•˜๋‹ค ๋ณด๋ฉด ์ด๋ฆ„์„ ๋ณ€๊ฒฝํ•ด์ฃผ๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ๋„ ์ƒ๊ธธ ๊ฒƒ์ด๋‹ค.๊ทธ๋ž˜์„œ์œ„ ํ™”๋ฉด์—์„œrandomButton์„ recommendButton์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  ์‹ถ์–ด์„œ์ด๋ ‡๊ฒŒ ๋ณ€๊ฒฝํ•ด์ฃผ๋ฉด?์•„๋ž˜ ์ฝ”๋“œ์—์„œ ์ด์ „์— ์ž‘์„ฑํ–ˆ๋˜ ์ด๋ฆ„์„ ์ฐพ์„ ์ˆ˜ ์—†๋‹ค๋Š” ์—๋Ÿฌ๊ฐ€ ๋œจ๊ณ ,๋ฐ‘์— ์ด๋ฆ„๋“ค๊นŒ์ง€ ๋ฐ”๊ฟ”์ฃผ๊ณ  ๋‚˜๋ฉด, ์—๋Ÿฌ๊ฐ€ ์‚ฌ๋ผ์ง€๊ฒŒ ๋œ๋‹ค.์ด๋ ‡๊ฒŒ ๋ฐ”๊ฟ”์ฃผ๊ณ  ๋นŒ๋“œ๋ฅผ ํ•˜๊ฒŒ ๋˜๋ฉด!์—๋Ÿฌ๊ฐ€ ๋‚˜๋ฉด์„œ ์‹คํ–‰์ด ๋ฉˆ์ถ”๊ณ , ๋””์ฝ”๋”ฉ ์˜์—ญ์— ํ•ด๋‹น ๋ฌธ์ œ๋ฅผ ์•Œ๋ ค์ฃผ๋Š”๋ฐ..randomButton์— ํ•ด๋‹นํ•˜๋Š” key value๊ฐ€ ์—†๋‹ค๊ณ  ํ•œ๋‹ค.์™œ ์ด๋Ÿฐ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋А๋ƒ!๋ฐ”๋กœ ์ฝ”๋“œ์ƒ ์•„์šธ๋ › ์ด๋ฆ„์€ ๋ฐ”๋€Œ์—ˆ์ง€๋งŒ, ์Šคํ† ๋ฆฌ๋ณด๋“œ์— ์žˆ๋Š” ์•„์šธ๋ › ์ด๋ฆ„์€ ๋ฐ”๋€Œ์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.์Šคํ† ๋ฆฌ๋ณด๋“œ์—์„œ ์šฐ์ธก ์ปค๋„ฅ์…˜ ์ธ์ŠคํŽ™ํ„ฐ๋ฅผ ๋ณด..

Swift/Xcode 2024.05.16

Swift - Array

Array '๋ฌด์–ธ๊ฐ€๋ฅผ ๋‹ด๋Š” ํ†ต'์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค. array๋Š” ์ˆœ์„œ์— ๋”ฐ๋ผ์„œ ํ†ต์— ๋‹ด์„ ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค€๋‹ค. ์ด ํ†ต์— ๋‹ด๋Š” ๋ณ€์ˆ˜๋“ค์€ 'element'๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. array๋Š” ๋‘ ๊ฐ€์ง€ ํŠน์ง•์„ ๊ฐ€์ง„๋‹ค. โ‘  ํ†ต์— ๋‹ด์„ ๋•Œ๋Š” ๊ฐ™์€ ํƒ€์ž…์„ ๋‹ด์•„์•ผ ํ•œ๋‹ค. (ex. Int๋ผ๋ฆฌ, String๋ผ๋ฆฌ ...) โ‘ก ์ˆœ์„œ๊ฐ€ ์กด์žฌํ•œ๋‹ค. array ์† element๋“ค์˜ ์ˆœ๋ฒˆ์ด ์กด์žฌํ•œ๋‹ค. ์ด ์ˆœ๋ฒˆ์„ Index๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. (Index๋Š” 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ๋‹ค. ๋งˆ์ง€๋ง‰ Index๋Š” (์ „์ฒด ๊ฐฏ์ˆ˜ - 1)๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋จ.) Q. array๋Š” ์–ธ์ œ ์‚ฌ์šฉํ•˜๋ฉด ์œ ์šฉํ• ๊นŒ? ๐Ÿค” โ‘  ์ˆœ์„œ๊ฐ€ ์žˆ๋Š” item โ‘ก item์˜ ์ˆœ์„œ๋ฅผ ์•Œ๋ฉด ์œ ์šฉํ•  ๋•Œ ๊ทธ๋Ÿผ ์ด์ œ๋ถ€ํ„ฐ array๋ฅผ ์–ด๋–ป๊ฒŒ swift๋กœ ๊ตฌํ˜„ํ•˜๊ณ  ์‚ฌ์šฉํ• ์ง€ ์•Œ์•„๋ณด์ž!! :-) < array ๋งŒ๋“ค๊ธฐ, ์š”..