Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- map
- 리팩토링
- ios
- RxCocoa
- tableView
- 리펙터링
- HIG
- collectionview
- uitableview
- 리펙토링
- UITextView
- swiftUI
- 스위프트
- rxswift
- SWIFT
- Protocol
- ribs
- UICollectionView
- 애니메이션
- combine
- Human interface guide
- Clean Code
- Refactoring
- uiscrollview
- 클린 코드
- Xcode
- swift documentation
- MVVM
- Observable
- clean architecture
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[iOS - swift 공식 문서] 11. Methods (메서드) 본문
Method
- 메서드의 정의: 특정 유형과 관련된 함수
- 인스턴스 작업을 위한 특정 작업
Instance Method
- 특정 클래스, 구조, 열거 형의 인스턴스에 속하는 함수
class Counter {
var count = 0
func increment() {
count += 1
}
func increment(by amount: Int) {
count += amount
}
func reset() {
count = 0
}
}
let counter = Counter() // 1
counter.increment() // 1
counter.increment(by: 5) // 6
counter.reset() // 0
Self Property
- 클래스 내에서 self의 의미: 자체 인스턴스 메서드 내에서 현재 인스턴스를 참조
- self는 암시적 속성이므로 생략 가능
func increment() {
self.count += 1
}
- 매개변수와 인스턴스 속성을 구별할때 사용
struct Point {
var x = 0.0, y = 0.0
func isToTheRightOf(x: Double) -> Bool {
return self.x > x
}
}
Instance Method 내에서 Value Type 값 수정
- Struct, Enum은 value type이므로 Instance Method내에서 수정이 불가하지만, mutating func를 통해 해당 메서드의 동작을 '변경'하도록 설정
struct Point {
var x = 0.0, y = 0.0
mutating func moveBy(x deltaX: Double, y deltaY: Double) {
x += deltaX
y += deltaY
}
}
// enum에서의 mutating func 사용
enum TriStateSwitch {
case off, low, high
mutating func next() {
switch self {
case .off:
self = .low
case .low:
self = .high
case .high:
self = .off
}
}
}
Type Method
- Instance Method는 특정 유형의 Instance에서 호출되는 메서드
- Type Method는 Type자체에서 호출되는 메서드
- static func
- class func (수퍼 클래스 구현을 재정의 가능)
class SomeClass {
class func someTypeMethod() {
// type method implementation goes here
}
}
SomeClass.someTypeMethod()
* 참고
https://docs.swift.org/swift-book/LanguageGuide/Methods.html
'swift 공식 문서' 카테고리의 다른 글
[iOS - swift 공식 문서] 13. Inheritance (상속) (0) | 2021.07.05 |
---|---|
[iOS - swift 공식 문서] 12. Subscripts (0) | 2021.07.03 |
[iOS - swift 공식 문서] 10. Properties (프로퍼티) (0) | 2021.06.26 |
[iOS - swift 공식 문서] 9. Structures and Classes (0) | 2021.06.25 |
[iOS - swift 공식 문서] 8. Enumerations (열거형) (0) | 2021.06.24 |
Comments