Deep_Dev
article thumbnail
[Swift 기초] μ˜΅μ…”λ„

μ˜΅μ…”λ„ μ˜΅μ…”λ„ = '선택적인'. 즉, 값이 μžˆμ„μˆ˜λ„ μ—†μ„μˆ˜λ„ μžˆμŒμ„ λ‚˜νƒ€λ‚΄λŠ” ν‘œν˜„ μ΄λŠ” 'λ³€μˆ˜λ‚˜ μƒμˆ˜ 등에 κΌ­ 값이 μžˆλ‹€λŠ” 것을 보μž₯ν•  수 μ—†λ‹€. 즉, λ³€μˆ˜ λ˜λŠ” μƒμˆ˜μ˜ 값이 nil 일 μˆ˜λ„ μžˆλ‹€'λŠ” 것 nil을 λ°˜ν™˜ν•˜κΈ° μœ„ν•΄ ν•„μš”ν•œ 것이 λ°”λ‘œ μ˜΅μ…”λ„ 였직 μ˜΅μ…”λ„ νƒ€μž…λ§Œ nil을 λ°˜ν™˜ν•  수 μžˆλ‹€. 즉, 일반 μžλ£Œν˜•μ€ nil을 κ°€μ§€κ±°λ‚˜ λ°˜ν™˜ν•  수 μ—†λ‹€. μ˜΅μ…”λ„ μ‚¬μš© μ˜΅μ…”λ„ λ³€μˆ˜ λ˜λŠ” μƒμˆ˜κ°€ μ•„λ‹ˆλ©΄ nil ν• λ‹Ή λΆˆκ°€ 였λ₯˜κ°€ λ°œμƒν•˜λŠ” nil ν• λ‹Ή var myName: String = "yagom" myName = nil // 였λ₯˜ nil은 μ˜΅μ…”λ„λ‘œ μ„ μ–Έλœ κ³³μ—μ„œλ§Œ μ‚¬μš©ν•  수 μžˆλ‹€. μ˜΅μ…”λ„ λ³€μˆ˜ λ˜λŠ” μƒμˆ˜ 등은 데이터 νƒ€μž… 뒀에 λ¬ΌμŒν‘œ ? λ₯Ό λΆ™μ—¬ ν‘œν˜„ν•΄μ€€λ‹€. 정상적인 nil ν• λ‹Ή var myName: Stri..

article thumbnail
[Swift 기초] ν•¨μˆ˜

πŸ“– ν•¨μˆ˜ πŸ“Œ ν•¨μˆ˜μ™€ λ©”μ„œλ“œ λ©”μ„œλ“œ : ꡬ쑰체, 클래슀, μ—΄κ±°ν˜• λ“± νŠΉμ •νƒ€μž…μ— μ—°κ΄€λ˜μ–΄ μ‚¬μš©ν•˜λŠ” ν•¨μˆ˜ 함 수 : λͺ¨λ“ˆ μ „μ²΄μ—μ„œ μ „μ—­μ μœΌλ‘œ μ‚¬μš©ν•  수 μžˆλŠ” ν•¨μˆ˜ πŸ’‘ ν•¨μˆ˜μ™€ λ©”μ„œλ“œλŠ” μ •μ˜ν•˜λŠ” μœ„μΉ˜μ™€ ν˜ΈμΆœλ˜λŠ” λ²”μœ„λ§Œ λ‹€λ₯Ό 뿐, μ •μ˜ν•˜λŠ” ν‚€μ›Œλ“œμ™€ κ΅¬ν˜„ν•˜λŠ” 방법은 κ°™λ‹€. πŸ“Œ ν•¨μˆ˜μ˜ μ •μ˜μ™€ 호좜 ν•¨μˆ˜λŠ” μ†Œκ΄„ν˜Έ()λ₯Ό μƒλž΅ν•  수 μ—†λ‹€. μŠ€μœ„ν”„νŠΈ ν•¨μˆ˜λŠ” μž¬μ •μ˜(μ˜€λ²„λΌμ΄λ“œ)와 쀑볡 μ •μ˜(μ˜€λ²„λ‘œλ“œ)λ₯Ό λͺ¨λ‘ μ§€μ›ν•œλ‹€. πŸ’‘λ”°λΌμ„œ λ§€κ°œλ³€μˆ˜μ˜ νƒ€μž…μ΄ λ‹€λ₯΄λ©΄ 같은 μ΄λ¦„μ˜ ν•¨μˆ˜λ₯Ό μ—¬λŸ¬ 개 λ§Œλ“€ 수 있고, λ§€κ°œλ³€μˆ˜μ˜ κ°œμˆ˜κ°€ 달라도 같은 μ΄λ¦„μ˜ ν•¨μˆ˜λ₯Ό λ§Œλ“€ 수 μžˆλ‹€. ν•¨μˆ˜λ₯Ό μ •μ˜ν•˜λŠ” ν‚€μ›Œλ“œ : func λ°˜ν™˜μ„ μœ„ν•œ ν‚€μ›Œλ“œ : return ν•¨μˆ˜μ΄λ¦„μ„ 지정해쀀 ν›„ λ§€κ°œλ³€μˆ˜λŠ” μ†Œκ΄„ν˜Έ() 둜 감싸쀀닀. λ°˜ν™˜νƒ€μž…μ„ λͺ…μ‹œν•˜κΈ° μ „μ—λŠ” -> λ₯Ό μ‚¬μš©ν•˜μ—¬..

article thumbnail
[Swift 기초] νλ¦„μ œμ–΄

πŸ“– νλ¦„μ œμ–΄ ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜λ‹€λ³΄λ©΄ νŠΉμ • μ‘°κ±΄μ—μ„œ μ½”λ“œλ₯Ό μ‹€ν–‰ν•΄μ•Ό ν•˜κ±°λ‚˜ μ‹€ν–‰ν•˜μ§€ 말아야 ν•˜λŠ” 상황이 생기기 λ§ˆλ ¨μ΄λ‹€. 또, νŠΉμ • λͺ…λ Ήμ–΄λ₯Ό λ°˜λ³΅ν•΄μ„œ μ‹€ν–‰ν•΄μ•Ό ν•˜λŠ” 일도 μ’…μ’… λ°œμƒν•œλ‹€. μ΄λŸ΄λ•Œ μ‚¬μš©ν•˜λŠ” 것이 쑰건문과 λ°˜λ³΅λ¬Έμ΄λ‹€. μŠ€μœ„ν”„νŠΈμ˜ νλ¦„μ œμ–΄ κ΅¬λ¬Έμ—μ„œλŠ” μ†Œκ΄„ν˜Έ()λ₯Ό λŒ€λΆ€λΆ„ μƒλž΅ν•  수 μžˆλ‹€. λ¬Όλ‘  μ‚¬μš©ν•΄λ„ λ¬΄κ΄€ν•˜μ§€λ§Œ μ€‘κ΄„ν˜Έ{} λŠ” μƒλž΅ν•  수 μ—†λ‹€. πŸ“– 쑰건문 πŸ“Œ if ꡬ문 μŠ€μœ„ν”„νŠΈμ˜ if ꡬ문은 쑰건의 값이 κΌ­ Bool νƒ€μž…μ΄μ–΄μ•Ό ν•œλ‹€. let first: Int = 5 let second: Int = 7 if first > second{ print("first > second") } else if first < second { print("first < second") } else { print("f..

article thumbnail
[Swift 기초] μ—°μ‚°μž

πŸ“– μ—°μ‚°μž ν• λ‹Ή μ—°μ‚°μž μ‚°μˆ  μ—°μ‚°μž 비ꡐ μ—°μ‚°μž μ‚Όν•­ 쑰건 μ—°μ‚°μž λ²”μœ„ μ—°μ‚°μž λΆ€μšΈ μ—°μ‚°μž λΉ„νŠΈ μ—°μ‚°μž 볡합 ν• λ‹Ή μ—°μ‚°μž μ˜€λ²„ν”Œλ‘œ μ—°μ‚°μž 기타 μ—°μ‚°μž πŸ“Œ 비ꡐ μ—°μ‚°μž 두 값을 비ꡐ할 λ•Œ μ‚¬μš© A==B A>=B AB A

article thumbnail
[Swift 기초] 데이터 νƒ€μž… κ³ κΈ‰

πŸ“– 데이터 νƒ€μž… μ•ˆμ‹¬ μŠ€μœ„ν”„νŠΈλŠ” νƒ€μž…μ— ꡉμž₯히 λ―Όκ°ν•˜κ³  μ—„κ²©ν•˜λ‹€. μ„œλ‘œ λ‹€λ₯Έ 데이터 νƒ€μž… 끼리의 데이터 κ΅ν™˜μ€ νƒ€μž…μΊμŠ€νŒ…(Type-Casting)을 거쳐야 ν•œλ‹€. μŠ€μœ„ν”„νŠΈμ—μ„œ κ°’ νƒ€μž…μ˜ 데이터 κ΅ν™˜μ€ μ—„λ°€νžˆ λ§ν•˜λ©΄ νƒ€μž…μΊμŠ€νŒ…μ΄ μ•„λ‹Œ μƒˆλ‘œμš΄ μΈμŠ€ν„΄μŠ€λ₯Ό μƒμ„±ν•˜μ—¬ ν• λ‹Ήν•˜λŠ” 것이닀. πŸ“Œ 데이터 νƒ€μž… μ•ˆμ‹¬μ΄λž€ μŠ€μœ„ν”„νŠΈλŠ” 데이터 νƒ€μž…μ„ μ•ˆμ‹¬ν•˜κ³  μ‚¬μš©ν•  수 μžˆλŠ” 언어이닀. 예λ₯Ό λ“€μ–΄, Int νƒ€μž… λ³€μˆ˜μ— ν• λ‹Ήν•˜λ €λŠ” 값이 Character νƒ€μž…μ΄λ©΄ 컴파일 였λ₯˜κ°€ λ°œμƒν•œλ‹€. μ΄λ ‡κ²Œ μŠ€μœ„ν”„νŠΈκ°€ 컴파일 μ‹œ νƒ€μž…μ„ ν™•μΈν•˜λŠ” 것을 νƒ€μž…ν™•μΈ 이라고 ν•œλ‹€. πŸ“Œ νƒ€μž… μΆ”λ‘  μŠ€μœ„ν”„νŠΈμ—μ„œλŠ” λ³€μˆ˜λ‚˜ μƒμˆ˜λ₯Ό μ„ μ–Έν•  λ•Œ νŠΉμ • νƒ€μž…μ„ λͺ…μ‹œν•˜μ§€ μ•Šμ•„λ„ μ»΄νŒŒμΌλŸ¬κ°€ ν• λ‹Ήλœ 값을 κΈ°μ€€μœΌλ‘œ λ³€μˆ˜λ‚˜ μƒμˆ˜μ˜ νƒ€μž…μ„ κ²°μ •ν•œλ‹€. // νƒ€μž…μ„ μ§€μ •ν•˜μ§€ μ•Šμ•˜μœΌλ‚˜..

article thumbnail
[Swift 기초] 데이터 νƒ€μž… κΈ°λ³Έ

πŸ“– λ¬Έμžμ—΄ 보간법 λ³€μˆ˜ λ˜λŠ” μƒμˆ˜ λ“±μ˜ 값을 λ¬Έμžμ—΄ 내에 λ‚˜νƒ€λ‚΄κ³  싢을 λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€. λ¬Έμžμ—΄ 내에 \(λ³€μˆ˜λ‚˜ μƒμˆ˜)의 ν˜•νƒœλ‘œ ν‘œκΈ°ν•˜λ©΄ 이λ₯Ό λ¬Έμžμ—΄λ‘œ μΉ˜ν™˜ν•΄μ„œ λ„£μŠ΅λ‹ˆλ‹€. let name: String = "yagom" print("My Name is \(name)") // My name is yagom πŸ“– λ³€μˆ˜μ™€ μƒμˆ˜ πŸ“Œ λ³€μˆ˜ μŠ€μœ„ν”„νŠΈμ—μ„œ λ³€μˆ˜λ₯Ό μƒμ„±ν•˜λ €λ©΄ var ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€. var [λ³€μˆ˜λͺ…]: [데이터 νƒ€μž…] = [κ°’] var name: String = "yagom" var age: Int = 100 print("μ €μ˜ 이름은 \(name)이고 λ‚˜μ΄λŠ” \(age)μ‚΄ μž…λ‹ˆλ‹€.") // μ €μ˜ 이름은 yagom이고 λ‚˜μ΄λŠ” 100μ‚΄ μž…λ‹ˆλ‹€. πŸ“Œ μƒμˆ˜ μŠ€μœ„ν”„νŠΈμ—μ„œ μƒμˆ˜λ₯Ό μƒμ„±ν•˜λ €λ©΄ let ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•©..

article thumbnail
[Swift][UIkit] iOSμ•±μ˜ ꡬ쑰와 μ½”μ½”μ•„ν„°μΉ˜ ν”„λ ˆμž„μ›Œν¬
🍎 iOS/UIKit 2022. 12. 25. 14:39

πŸ’‘iOS μ•±μ˜ ꡬ쑰 πŸ“Œ κ°œλ°œκ΄€μ μ—μ„œ λ³΄λŠ” iOS μ•±μ˜ ꡬ쑰 - Custom Code : κ±΄λ“œλ¦΄ 수 μžˆλŠ” μ˜μ—­ - System Framework : κ±΄λ“œλ¦΄ 수 μ—†λŠ” μ˜μ—­ UIApplicationMain() : iOS 앱에 μ†ν•˜λŠ” λΆ€λΆ„μ˜ μ—”νŠΈλ¦¬ 포인트 μ•±μ˜ 핡심 객체λ₯Ό μƒμ„±ν•˜λŠ” ν”„λ‘œμ„ΈμŠ€λ₯Ό ν•Έλ“€λ§ν•˜κ³ , μŠ€ν† λ¦¬λ³΄λ“œ νŒŒμΌλ‘œλΆ€ν„° μ•±μ˜ μœ μ € μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ½μ–΄λ“€μΌλΏλ§Œ μ•„λ‹ˆλΌ μš°λ¦¬κ°€ μž‘μ„±ν•œ μ»€μŠ€ν…€ μ½”λ“œλ₯Ό ν˜ΈμΆœν•΄ 쀌으둜써 μ•± 생성 μ΄ˆκΈ°μ— ν•„μš”ν•œ 섀정을 κ΅¬ν˜„ν•  수 있게 ν•΄μ€€λ‹€. AppDelegate : 객체λ₯Ό λ‚΄μ„Έμš°κ³  μ»€μŠ€ν…€ μ½”λ“œλ₯Ό μ²˜λ¦¬ν•  수 μžˆλ„λ‘ μ•½κ°„μ˜ κΆŒν•œ λΆ€μ—¬ UIApplicationμœΌλ‘œλΆ€ν„° μœ„μž„λ°›μ€ 일뢀 κΆŒν•œμ„ μ΄μš©ν•˜μ—¬ μ»€μŠ€ν…€ μ½”λ“œμ™€ μƒν˜Έμž‘μš©ν•˜λŠ” 역할을 λ‹΄λ‹Ήν•˜κ³ , 이λ₯Ό 톡해 μš°λ¦¬κ°€ ν•„μš”ν•œ μ½”λ“œλ₯Ό κ΅¬ν˜„ν•  수 μžˆλ„λ‘ ..

[Swift][UIKit] iOS의 μ‹œμž‘
🍎 iOS/UIKit 2022. 12. 25. 13:57

πŸ’‘ iOS의 첫 μ‹œμž‘ πŸ“Œ λ·° 컨트둀러(View Controller) : ν•˜μœ„μ— μžˆλŠ” μ½˜ν…μΈ λ₯Ό κ΄€λ¦¬ν•˜κ³ , λ³΄μ—¬μ£Όκ±°λ‚˜ μˆ¨κΈ°λŠ” λ“±μ˜ ꡬ성을 μ‘°μ •ν•˜λŠ” μ—­ν•  뷰와 λ¦¬μ†ŒμŠ€λ₯Ό κ΄€λ¦¬ν•œλ‹€ ( λͺ¨λ“  λ·° μ»¨νŠΈλ‘€λŸ¬λŠ” UIViewController 클래슀λ₯Ό 상속 받아야함 ) πŸ“Œ ν”„λ‘œμ νŠΈ ꡬ성과 μŠ€ν† λ¦¬λ³΄λ“œ 클래슀 파일 ( .swift ) : μ•±μ˜ μ†ŒμŠ€ μ½”λ“œ ꡬ성 AppDelegate.swift = μ•± μ „μ²΄μ˜ 생λͺ… μ£ΌκΈ° 관리λ₯Ό μœ„μž„λ°›μ€ 객체 μ•± 전체에 μ μš©ν•΄μ•Ό ν•  κΈ°λŠ₯을 λ‹΄λ‹Ήν•˜λŠ” 클래슀둜써, 앱이 μ‹€ν–‰λ˜κ±°λ‚˜ μ’…λ£Œλ  λ•Œ, 그리고 ν™œμ„±ν™” μƒνƒœκ°€ λ˜κ±°λ‚˜ λΉ„ν™œμ„±ν™” μƒνƒœκ°€ 될 λ•Œ, λ°±κ·ΈλΌμš΄λ“œ μƒνƒœλ‘œ λ“€μ–΄κ°€λŠ” λ“±μ˜ λ‹€μ–‘ν•œ μƒνƒœλ³€ν™”λ₯Ό κ°μ§€ν•˜κ³  이에 λŒ€ν•œ 처리λ₯Ό ν•΄μ£Όμ–΄μ•Ό ν•  λ•Œ μ‚¬μš© ViewController.swift = λ·° 컨트둀러λ₯Ό κ΅¬ν˜„ν•œ..