swift230 [Swift] ์ด๊ธฐํ ์ด๊ธฐํ (Initialization)ํด๋์ค, ๊ตฌ์กฐ์ฒด, ์ด๊ฑฐํ ์ธ์คํด์ค๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ์ค๋น ์์ ์ ํ๋ ๋จ๊ณ๊ฐ ์ ์ฅ ํ๋กํผํฐ์ ์ด๊ธฐ ๊ฐ์ ์ค์ →initializer๋ฅผ ์ ์ ํ๋ ๊ฒ์ผ๋ก ๊ตฌํ ์ ์ฅ ํ๋กํผํฐ๋ฅผ ์ํ ์ด๊ธฐ๊ฐ ์ค์ ์ธ์คํด์ค์ ์ ์ฅ ํ๋กํผํฐ๋ ์ฌ์ฉํ๊ธฐ ์ ๋ฐ๋์ ํน์ ๊ฐ์ผ๋ก ์ด๊ธฐํ ๋ผ์ผ ํจ (๊ธฐ๋ณธ ๊ฐ์ผ๋ก ์ค์ /ํน์ ๊ฐ์ผ๋ก ์ค์ ๊ฐ๋ฅ)NOTEinitializer์์ ์ ์ฅ ํ๋กํผํฐ์ ๊ฐ์ ์ง์ ์ค์ ํ๋ฉด ํ๋กํผํฐ ์ต์ ๋ฒ๊ฐ ํธ์ถ๋์ง ์๊ณ ๊ฐ ํ ๋น์ด ์ํ ์ด๋์ ๋ผ์ด์ ํน์ ํ์ ์ ์ธ์คํด์ค ์์ฑ (์ด๋์ ๋ผ์ด์ ์ ๊ฐ์ฅ ๊ฐ๋จํ ํํ_ ํ๋ผ๋ฏธํฐ ์์ด init ํค์๋ ์ฌ์ฉ)init() {// perform some initialization here}๊ธฐ๋ณธ ํ๋กํผํฐํ๋กํผํฐ ์ ์ธ๊ณผ ๋์์ ๊ฐ์ ํ ๋น, ์ด ๊ฐ์ ์ด๊ธฐ ๊ฐ์ผ.. 2024. 3. 25. [Swift] ์์ ์์(Inheritance)ํด๋์ค์์ ๋ค๋ฅธ ํด๋์ค๋ก ๋ถํฐ ์์ํ ์ ์์ํด๋์ค์์ ์ ์ฅ ํ๋กํผํฐ, ๊ณ์ฐ ํ๋กํผํฐ ์๊ด์์ด ์์ ๋ฐ์ ํ๋กํผํฐ์ ํ๋กํผํฐ ์ต์ ๋ฒ๋ฅผ ์ฌ์ฉํด ๊ฐ ์ค์ ์ ๋ฐ์ํ ์ ์์๊ธฐ๋ฐํด๋์ค๋ค๋ฅธ ์ด๋ค ํด๋์ค๋ก๋ถํฐ ์์๋ฐ์ง ์์ ํด๋์ค SomeSuperclass์๋ธํด๋์ฑ๋ถ๋ชจ๋ก ๋ถํฐ ์ฑ๊ฒฉ์ ์์๋ฐ๊ณ ์์ ๊ณ ์ ์ ํน์ฑ๋ ์ถ๊ฐํ ์ ์์class SomeSubclass: SomeSuperclass { // subclass definition goes here}์๋ธํด๋์ฑ์ ๊ณ์ํ ์ ์์ ์ค๋ฒ๋ผ์ด๋ฉ (Overriding)์๋ธํด๋์ค์์ ๋ถ๋ชจํด๋์ค์์ ์์๋ฐ์ ๊ฒ์ ์ฌ์ ์์ธ์คํด์ค, ๋ฉ์๋, ํ์ ๋ฉ์๋, ์ธ์คํด์ค ํ๋กํผํฐ, ํ์ ํ๋กํผํฐ, ์๋ธ์คํฌ๋ฆฝํธ ๋ชจ๋ ๊ฐ๋ฅ๋ค๋ฅธ ์ ์ธ ์์ overrideํค์๋ ๋ถ์ฌ .. 2024. 3. 22. [Swift] ์๋ธ์คํฌ๋ฆฝํธ ์๋ธ์คํฌ๋ฆฝํธ(Subscripts)ํด๋์ค, ๊ตฌ์กฐ์ฒด, ๊ทธ๋ฆฌ๊ณ ์ด๊ฑฐํ์์ ์คํฌ๋ฆฝํธ๋ฅผ ์ ์ํด ์ฌ์ฉ ๊ฐ๋ฅ์ฝ๋ ์ , ๋ฆฌ์คํธ, ์ํ์ค ๋ฑ ์งํฉ์ ํน์ ๋ฉค๋ฒ ์๋ฆฌ๋จผํธ์ ๊ฐ๋จํ๊ฒ ์ ๊ทผ ํ ์ ์๋ ๋ฌธ๋ฒ์ถ๊ฐ์ ์ธ ๋ฉ์๋ ์์ด ํน์ ๊ฐ์ ํ ๋นํ๊ฑฐ๋ ๊ฐ์ ธ์ฌ ์ ์์ํ๋์ ํ์ ์ ์ฌ๋ฌ ์๋ธ์คํฌ๋ฆฝํธ๋ฅผ ์ ์ํ ์ ์๊ณ ์ค๋ฒ๋ก๋(Overload)๋ ๊ฐ๋ฅ๋จ์ผ ์ธ์ ๊ฐ์ ๋์ด, ํ์์ ๋ฐ๋ผ ๋ณต์ ์ธ์ ๊ฐ ์ฌ์ฉ ๊ฐ๋ฅ์๋ธ์คํฌ๋ฆฝํธ ๋ฌธ๋ฒ (Subscript Syntax)์๋ธ์คํฌ๋ฆฝํธ๋ ์ฝ๊ณ -์ฐ๊ธฐ(read-write) ํน์ ์ฝ๊ธฐ ์ ์ฉ(read only)๋ง ๊ฐ๋ฅsetter, getter ๋ฐฉ์์ ๋ฐ๋ฆsubscript(index: Int) -> Int { get { // ์ ์ ํ ๋ฐํ ๊ฐ } set(newValue) { .. 2024. 3. 22. [Swift] ๋ฉ์๋ ๋ฉ์๋(Methods)ํน์ ํ์ ์ ํด๋์ค, ๊ตฌ์กฐ์ฒด, ์ด๊ฑฐํ๊ณผ ๊ด๋ จ๋ ํจ์ ์ธ์คํด์ค ๋ฉ์๋ (Instance Methods)ํน์ ํด๋์ค, ๊ตฌ์กฐ์ฒด, ์ด๊ฑฐํ์ ์ธ์คํด์ค์ ์ํ ๋ฉ์๋์ธ์คํด์ค ๋ด์ ๊ฐ์ ์ ์ดํ๊ฑฐ๋ ๋ณ๊ฒฝ ๊ฐ๋ฅ์ธ์คํด์ค๊ฐ ์ํ ํน์ ํ์ ์ ์ธ์คํด์ค์์๋ง ์คํ ๊ฐ๋ฅclass Counter { var count = 0 func increment() { count += 1 } func increment(by amount: Int) { count += amount } func reset() { count = 0 }}let counter = Counter()// ์ด๊ธฐ count ๊ฐ์ 0์ ๋๋ค.counter.increment()// co.. 2024. 3. 21. [Swift] ํ๋กํผํฐ ์ ์ฅ ํ๋กํผํฐ๊ณ์ฐ ํ๋กํผํฐ๊ฐ์ ์ ์ฅํ๊ณ ์๋ ํ๋กํผํฐ๊ฐ์ ์ ์ฅํ๊ณ ์์ง ์๊ณ ํน์ ํ๊ฒ ๊ณ์ฐํ ๊ฐ์ ๋ฐํํด ์ฃผ๋ ํ๋กํผํฐํด๋์ค์ ๊ตฌ์กฐ์ฒด์์๋ง ์ฌ์ฉ ๊ฐ๋ฅํด๋์ค, ๊ตฌ์กฐ์ฒด, ์ด๊ฑฐํ ๋ชจ๋์์ ์ฌ์ฉ๊ฐ๋ฅ์ ์ฅ ํ๋กํผํฐletํค์๋๋ฅผ ์ด์ฉํด์ ์์ ํน์ varํค์๋๋ฅผ ์ด์ฉํด์ ๋ณ์๋ก ์ ์ธํด ์ฌ์ฉstruct FixedLengthRange { var firstValue: Int let length: Int}var rangeOfThreeItems = FixedLengthRange(firstValue: 0, length: 3)// ๋ฒ์ ๊ฐ์ 0, 1, 2 ์ ๋๋ค.rangeOfThreeItems.firstValue = 6// ๋ฒ์ ๊ฐ์ 6, 7, 8 ์ ๋๋ค. ์์ ๊ตฌ์กฐ์ฒด ์ธ์คํด์ค์ ์ ์ฅ ํ๋กํผํฐ๊ตฌ์กฐ์ฒด๋ฅผ ์์(let)๋ก .. 2024. 3. 20. [Swift] ํด๋์ค์ ๊ตฌ์กฐ์ฒด ํด๋์ค VS ๊ตฌ์กฐ์ฒด๊ณตํต์ ๊ฐ์ ์ ์ฅํ๊ธฐ ์ํ ํ๋กํผํฐ ์ ์๊ธฐ๋ฅ์ ์ ๊ณตํ๊ธฐ ์ํ ๋ฉ์๋ ์ ์ subscript ๋ฌธ๋ฒ์ ์ด์ฉํด ํน์ ๊ฐ์ ์ ๊ทผํ ์ ์๋ subscript ์ ์์ด๊ธฐ ์ํ๋ฅผ ์ค์ ํ ์ ์๋ initializer ์ ์๊ธฐ๋ณธ ๊ตฌํ์์ ๊ธฐ๋ฅ ํ์ฅํน์ ํ ์ข ๋ฅ์ ํ์ค ๊ธฐ๋ฅ์ ์ ๊ณตํ๊ธฐ ์ํ ํ๋กํ ์ฝ ์์(conform)์ฐจ์ด์ (ํด๋์ค๋ง ๊ฐ๋ฅ)์์ (Inheritance): ํด๋์ค์ ์ฌ๋ฌ ์์ฑ์ ๋ค๋ฅธ ํด๋์ค์ ๋ฌผ๋ ค ์คํ์ ์บ์คํ (Type casting): ๋ฐํ์์ ํด๋์ค ์ธ์คํด์ค์ ํ์ ์ ํ์ธ์๋ฉธ์ (Deinitializers): ํ ๋น๋ ์์์ ํด์ (free up) ์ํด์ฐธ์กฐ ์นด์ดํธ (Reference counting): ํด๋์ค ์ธ์คํด์ค์ ํ๋ ์ด์์ ์ฐธ์กฐ๊ฐ ๊ฐ๋ฅ๊ตฌ์กฐ์ฒด๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์ฃผ ๋ชฉ์ ์ด ๊ด๊ณ๋ ๊ฐ๋จํ ๊ฐ.. 2024. 3. 19. ์ด์ 1 2 3 4 5 6 ยทยทยท 39 ๋ค์ ๋ฐ์ํ