
self๋ ํ์ฌ ์ธ์คํด์ค(๊ฐ์ฒด) ์์ ์ ๊ฐ๋ฆฌํค๋ ํน๋ณํ ํค์๋์์. ์ฝ๊ฒ ๋งํด์ "๋ ์์ "์ ์๋ฏธํฉ๋๋ค!
class Person {
let name: String
init(name: String) {
// self.name์ ํ๋กํผํฐ, name์ ํ๋ผ๋ฏธํฐ
self.name = name
}
}
class Counter {
var count = 0
func increment() {
// ํ์ฌ ์ธ์คํด์ค์ ๋ฉ์๋ ํธ์ถ
self.count += 1
}
}
class ViewController {
func fetchData() {
NetworkManager.getData { [weak self] result in
// self๋ฅผ ์ฝํ ์ฐธ์กฐ๋ก ์ฌ์ฉ
self?.handleResult(result)
}
}
}
struct Math {
static func double(_ number: Int) -> Int {
return number * 2
}
static func quadruple(_ number: Int) -> Int {
// ๊ฐ์ ํ์
์ ๋ค๋ฅธ ํ์
๋ฉ์๋ ํธ์ถ
return Self.double(Self.double(number))
}
}
class Student {
let name: String
init(name: String) {
self.name = name // ํ์!
}
}
class GameManager {
var score = 0
func startGame() {
Timer.scheduledTimer { [weak self] _ in
self?.score += 1 // self ํ์
}
}
}
class ChainBuilder {
func doSomething() -> Self {
// ์์
์ํ
return self
}
func doAnotherThing() -> Self {
// ๋ค๋ฅธ ์์
์ํ
return self
}
}
// ์ฌ์ฉ ์์
let builder = ChainBuilder()
.doSomething()
.doAnotherThing()
self๋ ๊ฑฐ์ธ์ ๋ณด๋ ๊ฒ๊ณผ ๊ฐ์์class MyClass {
var closure: (() -> Void)?
func setup() {
// [weak self] ์ฌ์ฉํด์ ์ํ ์ฐธ์กฐ ๋ฐฉ์ง
closure = { [weak self] in
self?.doSomething()
}
}
}
class SimpleClass {
var name: String = ""
func printName() {
// self ์์ด๋ ๋จ
print(name)
// ๋ถํ์ํ self ์ฌ์ฉ
print(self.name)
}
}
self๋ ์ธ์คํด์ค ์์ ์ ๊ฐ๋ฆฌํค๋ ํค์๋#Swift #iOS #self #TIL #๊ฐ๋ฐ๊ณต๋ถ