[Swift] ํ๋กํ ์ฝ ๋ฉ์๋ ์๊ตฌ์ฌํญ (Method Requirements)
์ฐธ๊ณ ์๋ฃ: Protocols - swift.org
์์ฑ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก method ๋ `static` ํค์๋๋ฅผ ํตํด type method๋ฅผ ๊ตฌํํ ์ ์์ต๋๋ค.
์ผ๋ฐ์ ์ธ instance method ์ type method์ฒ๋ผ ์ ์ํ๋ฉด ๋์ง๋ง,
ํ๋กํ ์ฝ์ ๊ตฌํ์ ํ์ง ์๋ ์๊ตฌ์ฌํญ ์ด๊ธฐ ๋๋ฌธ์ { } (curly brace) ์ ํด๋นํ๋ ๋ฐ๋ ๋ถ๋ถ์ ์์ต๋๋ค.
Syntax
protocol SomeProtocol {
// Type method
// with no-input, no-return
static func someTypeMethod()
}
protocol RandomNumberGenerator {
// Instance Method
// with no-input, Double type return
func random() -> Double
}
์์ ํด๋นํ๋ ํ๋กํ ์ฝ์ ์ฑ์ฉํ ํ์ ์ ํด๋นํ๋ ๋ฉ์๋๋ค์ ๊ตฌํํด์ฃผ๋ฉด ๋ฉ๋๋ค.
์์ฑ ์๊ตฌ์ฌํญ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก, static ์ผ๋ก ์ ์ธ๋ ๋ฉ์๋๋ฅผ ์ค๋ฒ๋ผ์ด๋ฉํ๊ณ ์ถ์ ๊ฒฝ์ฐ์๋ class ํค์๋๋ฅผ ๋ถ์ฌ์ ๊ตฌํํด๋ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
Mutating Method Requirement
๊ด๋ จ ๊ธ : Mutating Method
๊ฐ ํ์ ์ Mutating Method๋ฅผ ๊ตฌํํ ๋ ์ฌ์ฉํฉ๋๋ค. Method ์์ `mutating` ํค์๋๋ฅผ ๋ถ์ฌ ์ฃผ๋ฉด ๋ฉ๋๋ค.
์ด๊ฒ์ ๊ฐ ํ์ ์ด ํ๋กํ ์ฝ์ ์ฑํํ ๊ฒฝ์ฐ๋ฅผ ์ผ๋์ ๋ ๊ฒ์ ๋๋ค.
๋ฐ๋ผ์ ํด๋์ค๊ฐ ์ด ํ๋กํ ์ฝ์ ์ฑ์ฉํ๋ ๊ฒฝ์ฐ mutating ํค์๋๋ฅผ ์ ์ ํ์๋ ์์ต๋๋ค.
๋!
๐ค๐ข[์ฐ์งฑ์ iOS ๋ธ๋ก๊ทธ]๐ต๐ป
iOS๋ฅผ ๊ณต๋ถํ๋ฉด์ ๋ฐฐ์ด ๋ด์ฉ์ ๊ธฐ๋กํ๊ณ ์์ต๋๋ค.
๋ค์ ๊ธ: Initializer Requirements - Protocols