- Today
- Total
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- SwiftUI
- ios
- swift
- ๋ฉ๋ชจ์ฅ
- Git
- Apple
- ๋ฆฌ์
- hig
- ๊ฐ์ฉ ์์ญ
- ๊ตฌ๊ธ ๊ฒ์ ์ฝ์
- Pull
- ์ ๋๋ฉ์ด์
- GitHub
- commit
- ์ปดํจํ
- ์ค๋ธ์
- JSON
- ํด๋ผ์ฐ๋
- ์ฃ์ง ๋ก์ผ์ด์
- uikit
- push
- aws
- ์ธ์คํด์ค
- EBS
- xcode
- swiftui Tutorials
- ๋ช ๋ น์ด ๋ชจ์์ง
- ํฐ์คํ ๋ฆฌ์ฑ๋ฆฐ์ง
- ์ปค๋ฐ
- s3์ ebs ์ฐจ์ด์
DEV_Larva
์ก์ธ์ค ์ ์ด & ๋ฉ์๋ ๋ณธ๋ฌธ
๐ง๐ป์ด๋ฒ Swift ์๊ฐ์ ๋ฐฐ์๋ณผ ๊ฒ์ ๋ค์๊ณผ ๊ฐ๋ค. ๐จ๐ป๐ป
- ์ก์ธ์ค ์ ์ด
- ์ ์ ์์ฑ ๋ฐ ๋ฉ์๋
1. ์ก์ธ์ค ์ ์ด
Swift์ ๊ตฌ์กฐ์ฒด๋ฅผ ์ฌ์ฉํ๋ค ๋ณด๋ฉด ์์ฑ๊ณผ ๋ฉ์๋์ ์ก์ธ์ค ํ ์ ์์ง๋ง ์ํ๋ ๊ฒ์ด ์๋ ๊ฒ์ ์ก์ธ์ค ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค. ์ธ๋ถ ์ก์ธ์ค๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ์จ๊ธฐ๊ณ ์ถ์ ๋๋ ์๋ค.
์์ ๊ตฌ์กฐ์ฒด๋ฅผ ํตํด์ ๋ฌธ์ ๋ฅผ ๋ง๋ค๊ณ ํด๊ฒฐ๋ฒ์ ์ฐพ์๋ณด์!
struct BankAccount {
var funds = 0
mutating func deposit(amount: Int) {
funds += amount
}
mutating func withdraw(amount: Int) -> Bool {
if funds >= amount {
funds -= amount
return true
} else {
return false
}
}
}
์ํ ๊ณ์ข์์ ๋์ ์ ๊ธํ๊ณ ์ธ์ถํ๋ ๋ฐฉ๋ฒ์ด ์๊ณ ์์ ์์์ ์ฝ๋์ ๊ฐ์ด ์ฌ์ฉํด์ผ ํ๋ค.
var account = BankAccount()
account.deposit(amount: 100)
let success = account.withdraw(amount: 200)
if success {
print("Withdrew money successfully")
} else {
print("Failed to get the money")
}
ํ์ง๋ง funds ์์ฑ์ ์ฐ๋ฆฌ์๊ฒ ์ธ๋ถ์ ์ผ๋ก๋ง ๋ ธ์ถ๋์์ ๋ฟ์ธ๋ฐ ์ฐ๋ฆฌ๊ฐ ๊ทธ๊ฒ์ ์ง์ ๋ง์ง์ง ๋ชปํ๊ฒ ๋ง์ ๊ฒ์ด ์๋?? ์๋ค.
๋ฐ๋ผ์ ์๋์ ๊ฐ์ ์ฝ๋๊ฐ ํ์ฉ๋๋ค.
account.funds -= 1000
์ด๊ฒ ์๋ฏธํ๋ ๊ฒ ๋ฌด์์ธ๊ฐ?? ์ฌ๋๋ค์ด ๊ฐ์ง ๋๋ณด๋ค ๋ ๋ง์ ๋์ ์ธ์ถํ๋ ๊ฑธ ๋ง๊ธฐ ์ํด ์ฐ๋ฆฌ์ ๋ ผ๋ฆฌ๋ฅผ ์์ ํ ํผํด์ ํ๋ก๊ทธ๋จ ์์ฒด๊ฐ ์ด์ํ ๋ฐฉํฅ์ผ๋ก ํ๋ฌ๊ฐ ์ ์๋ค.
์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์ ์ฐ๋ฆฌ๋ Swift์๊ฒ funds ๋ด๋ถ์์๋ง ์ ๊ทผ ๊ฐ๋ฅํ๊ฒ๋ ๋ง๋ค์ด์ผ ํ๋ค. ๊ทธ ๋ฐฉ๋ฒ์ ๋ฑ ํ ๊ฐ์ ๋จ์ด๋ง ์ถ๊ฐํ๋ฉด ๋๋ค.
private var funds = 0
์ด์ ๊ตฌ์กฐ ์ธ๋ถ์์ ์๊ธ์ ์ ๊ทผํ๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํ์ง๋ง deposit()๊ณผ withdraw()์์๋(์๊ธ๊ณผ ์ธ์ถ) ๊ฐ๋ฅํด์ง๋ค. ๊ตฌ์กฐ ์ธ๋ถ์์ ์๊ธ์ ์ฝ๊ฑฐ๋ ์ฐ๋ ค๊ณ ํ๋ฉด Swift๊ฐ ๊ทธ์ ๋ํ ์ฝ๋ ์์ฑ์ ๊ฑฐ๋ถํ๊ณ ์ค๋ฅ๋ฅผ ์ถ๋ ฅํ๋ค.
์ฐ๋ฆฐ ์๊ฑธ ๊ตฌ์กฐ์ฒด์ ์์ฑ๊ณผ ๋ฉ์๋๊ฐ ๊ตฌ์กฐ์ฒด ์ธ๋ถ์์ ์ ๊ทผํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ ์ดํ๊ธฐ ๋๋ฌธ์ ์ ๊ทผ ์ ์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค.
๊ทธ์ค ์ ์ฉํ ์ต์ ์ด ์๋๋ฐ ๊ทธ์ค 3๊ฐ์ง๋ง ์์๋ณด์!
- private : ๊ตฌ์กฐ๋ฌผ ์ธ๋ถ์ ์ด๋ค ๊ฒ๋ ์ด๊ฒ์ ์ฌ์ฉํ ์ ์๋ค!!๐ โ๏ธ
- fileprivate : ํ์ฌ ํ์ผ ์ธ๋ถ์ ์ด๋ค ๊ฒ๋ ์ด ํ์ผ์ ์ฌ์ฉํ์ง ์๋๋ก ์ค์
- public : ๋๊ตฌ๋ ์ด๋์๋ ๋ง๋๋ก ์ฌ์ฉํ์ธ์~๐ค
2. ์ ์ ์์ฑ ๋ฐ ๋ฉ์๋
๊ฐ๋์ฉ ์ง์ ์ฌ์ฉํ ์ ์๋ ๊ตฌ์กฐ์ ํน์ ์ธ์คํด์ค๊ฐ ์๋๋ผ ๊ตฌ์กฐ ์์ฒด์ ์์ฑ์ด๋ ๋ฉ์๋๋ฅผ ์ถ๊ฐ ํ ๋ ค๋ ํ ๋๊ฐ ์๋ค.
๋ฐ๋ก ์ ์ ์์ฑ๊ณผ ๋ฉ์๋๋ฅผ ๋ง๋ค๊ณ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์์๋ฅผ ์์ ๋ฅผ ํตํด ํ์ธํด๋ณด์
struct School {
static var studentCount = 0
static func add(student: String) {
print("\(student) joined the school.")
studentCount += 1
}
}
์ฌ๊ธฐ์ static์ด๋ผ๋ ํค์๋๋ studentCount() ์์ฑ๊ณผ add() ๋ฉ์๋๊ฐ ๋ชจ๋ ๊ตฌ์กฐ์ ๊ฐ๋ณ ์ธ์คํด์ค๊ฐ ์๋ school ๊ตฌ์กฐ ์์ฒด์ ์ํจ์ ์๋ฏธํ๊ณ ์๋ค.
๊ทธ๋์ ํด๋น ์ฝ๋๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ์๋์ ๊ฐ์ด ์์ฑํ๋ฉด ๋๋ค.
School.add(student: "Taylor Swift")
print(School.studentCount)
์ ์ ์์ฑ๊ณผ ๋น์ ์ ์์ฑ ๋ฐ ๋ฉ์๋๋ฅผ ํผํฉํ๊ณ ์ผ์น์ํค๋ ค๋ฉด ๋ ๊ฐ์ง ๊ท์น ํ์ํ๋ค.
- ์ ์ ์์ฑ ๋ฐ ๋ฉ์๋๋ ๋น์ ์ ์์ฑ ๋ฐ ๋ฉ์๋๋ฅผ ์ฐธ์กฐํ ์ ์๋ค. (์๋ฏธ๊ฐ ์๊ธฐ ๋๋ฌธ)
- ๋น์ ์ ์ฝ๋์์ ์ ์ ์ฝ๋์ ์ก์ธ์ค ํ๋ ค๋ฉด ํญ์ Shool.studentCount ์ ๊ฐ์ ์ ํ์ผ๋ก ์ฌ์ฉํด์ผ ํ๋ค.
์ฌ๊ธฐ์ ์ฐ๋ฆฌ๋ self์ Self๋ฅผ ๊ฐ์ง๊ฒ ๋๋๋ฐ ์๋ก ๋ค๋ฅธ ๊ฒ์ ์๋ฏธํ๋ค.
๋จผ์ self๋ ๊ตฌ์กฐ์ ํ์ฌ๊ฐ์น๋ฅผ ์๋ฏธํ๊ณ Self๋ ํ์ฌ ์ ํ์ ์๋ฏธํ๋ค.
์! ์ด์ ์ ์ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๋ ๋ ๊ฐ์ง ์ฃผ์ ๋ฐฉ๋ฒ์ ๋ํด ๋ฐ๋ก ํ์ธํด๋ณด์!๐ต๏ธโ๏ธ
struct AppData {
static let version = "1.3 beta 2"
static let saveFilename = "settings.json"
static let homeURL = "https://www.hackingwithswift.com"
}
๋จผ์ ์ ์ ์์ฑ์ ์ฌ์ฉํ์ฌ ์ฑ์์ ๊ณตํต ๋ฐ์ดํฐ๋ฅผ ๊ตฌ์ฑํ๋ค. ์๋ฅผ ๋ค๋ฉด ์ฌ๋ฌ ๊ณณ์์ ์ฌ์ฉํ๋ ๋ง์ ๊ณต์ ๊ฐ์ ์ ์ฅํ๋ AppData์ ๊ฐ์ ๊ตฌ์กฐ์ฒด๊ฐ ์๋ค.
์ด ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ฉด ์ฑ์ ๋ฒ์ ๋ฒํธ(ํ๋ฉด, ๋๋ฒ๊ทธ ์ถ๋ ฅ, ๋ก๊น ์ ๋ณด, ์ง์ ์ด๋ฉ์ผ ๋ฑ)๋ฅผ ํ์ธํ๊ฑฐ๋ ํ์ํด์ผ ํ๋ ๋ชจ๋ ๊ณณ์์ AppData.version์ ์ฝ์ ์ ์๋ค.
๊ทธ๋ฆฌ๊ณ ๋ ๋ฒ์งธ๋ก๋ ๊ตฌ์กฐ์ฒด์ ์๋ฅผ ๋ง๋๋ ๊ฒ์ธ๋ฐ SwifUI๋ฅผ ๊ฐ๋ฐํ๋ฉด์ ์ฑ์ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ฅผ ํ์ํ ์ ์์ ๋ ๊ฐ์ฅ ์ ์๋ํ๋ฉด์ ์ด๋ฐ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ ์ํ ๋ฐ์ดํฐ๊ฐ ํ์ํ๋ค. ์ด์ ๋ํ ์์๋ ๋ค์ ์์ ๋ฅผ ํตํด ํ์ธํด๋ณด์.
struct Employee {
let username: String
let password: String
static let example = Employee(username: "cfederighi", password: "hairforceone")
}
์ด์ ์ค๊ณ ๋ฏธ๋ฆฌ๋ณด๊ธฐ์์ ์์ ํ ์ง์ ์ธ์คํด์ค๊ฐ ํ์ํ ๋๋ง๋ค Employee.example์ ์ฌ์ฉํ๋ฉด ๋๋ค.
learning by repetition
'iOS > Swift ๋ฌธ๋ฒ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๊ตฌ์กฐ์ฒด (0) | 2022.08.14 |
---|---|
ํด๋ก์ & ํํ ํด๋ก์ (0) | 2022.08.08 |
๋งค๊ฐ๋ณ์ (0) | 2022.07.24 |
ํจ์ (0) | 2022.07.23 |
๋ฐ๋ณต๋ฌธ (0) | 2022.07.15 |