iOS/๐ŸŸ  Swift

Initializers - Initializer

woozzang 2021. 1. 5. 13:00

"์ด๋‹ˆ์…œ๋ผ์ด์ €"

 

๊ฐœ์š”

Enumeration, Class, Struct ๋Š” ๋ชจ๋‘ ๊ฐœ๋ฐœ์ž๊ฐ€ ์„ ์–ธํ•ด ๋†“์€ ์„ค๊ณ„๋„ ์ž…๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์ด ์„ค๊ณ„๋„์™€ Initializer ๋ฅผ ํ†ตํ•ด Instance ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

Initializer์˜ ์‹คํ–‰ ํ›„, ๋ชจ๋“  ์†์„ฑ์€ ๊ธฐ๋ณธ ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ƒํƒœ์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋งŒ์•ฝ ๊ธฐ๋ณธ ๊ฐ’์ด ์—†๋Š” ์†์„ฑ์ด ์กด์žฌํ•œ๋‹ค๋ฉด Initialization ์ฆ‰, ์ดˆ๊ธฐํ™”๋Š” ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

 

Initializer์˜ ์ข…๋ฅ˜๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

Default Initializer, Memberwise Initializer, Designated Initializer, Convenience Initializer , Required Initializer

 

์ด์–ด์ง€๋Š” ๊ธ€์—์„œ  ์ฐจ๋ก€๋กœ ๊ฐ๊ฐ ๋‹ค๋ค„๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.


 

Basic Syntax

class Person {

    var name: String
    var age: Int
    
    /* Initializer์˜ ์„ ์–ธ */
    init(name: String, age: Int) {
    	self.name = name
        self.age = age
    }
}

/* Initializer์˜ ํ˜ธ์ถœ */
/* TypeName๊ณผ Parenthesis, Argument Label ์„ ํ†ตํ•ด ํ˜ธ์ถœํ•œ๋‹ค */
var kim = Person(name: Mirae, age: 16)

 

Default Initializer

 

์กฐ๊ฑด

๋ชจ๋“  ์†์„ฑ์ด ์„ ์–ธ์‹œ์— ๊ธฐ๋ณธ ๊ฐ’์„ ๊ฐ€์งˆ ๋•Œ ์ปดํŒŒ์ผ๋Ÿฌ์— ์˜ํ•ด ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

๋‹จ, ๊ฐœ๋ฐœ์ž๊ฐ€ Initializer๋ฅผ ์ง์ ‘ ์„ ์–ธํ•˜๋ฉด ๋” ์ด์ƒ ์ œ๊ณต๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

 

Code

class Color {

    /* ์„ ์–ธ ์‹œ์— ๋ชจ๋“  ์ €์žฅ์†์„ฑ์— ๊ธฐ๋ณธ ๊ฐ’์ด ์žˆ์Œ */
    var rValue = 0
    var gValue = 0
    var bValue = 0
}

/* Default Initializer ์ œ๊ณต ๋จ */
var myColor = Color()

 

 

 

 

๋.


 

๋‹ค์Œ ๊ธ€: Memberwise Initializer - Initializer

 

Memberwise Initializer - Initializer

" ๊ตฌ์กฐ์ฒด์—๋งŒ ํŠน๋ณ„ํžˆ ์ œ๊ณต๋˜๋Š” ์ด๋‹ˆ์…œ๋ผ์ด์ € " ๊ตฌ์กฐ์ฒด์—๋งŒ ํŠน๋ณ„ํžˆ ์ œ๊ณต๋˜๋Š” Initializer๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด Initializer๋Š” ์ดˆ๊ธฐํ™” ์‹œ์ ์—์„œ ์ˆ˜์ • ๊ฐ€๋Šฅํ•œ ์†์„ฑ์— ํ•œํ•˜์—ฌ, Argument๋กœ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์„ ์–ธ ์‹œ์ ๊ณผ

woozzang.tistory.com