0. 복습을 합시다
진도의 압박 속에
앞 내용을 이해 못하고 뒤로 갈수록 더더 이해가 안되고 있다!
주말 기념 이해가 잘 안됐던 앞 내용 복습하기
아직 이해가 잘 안되는 것들은 보라색으로 배경색을 줬다.
직접 코드를 만지다 보면 사용해야 하는 이유를 알지 않을까 싶다..
1.
열거형 case 패턴
enum Computer { // 3가지로 정의
case cpu(core: Int, ghz: Double)
case ram(Int, String)
case hardDisk(gb: Int)
}
switch chip {
...중략
}
//열거형 case 패턴
if case .hardDisk(gb: let gb) = chip {
print("\(gb) 하드디스크임")
}
//배열
let chiplists: [Computer] = [
...중략
]
for case let .cpu(core: c, ghz: g) in chiplist {
pritn("\(c)랑 \(g)임"
}
열거형 case 패턴을 이용해 특정 조건만 뽑아서 쓸 수 있다.
속성 정리
저장 속성
: 구조체나 클래스 틀에서 찍어낸 인스턴스가 가지는 "고유한 데이터 저장 공간"
static Bird{
var name = "새" //->저장 속성
}
계산 속성
: 속성의 형태를 가진 실질적 메서드 -> 메서드를 속성처럼 만든 것
var excute: Double{
get {
... //-> 계산 속성 getter => 밖에서 접근해서 값을 얻기
}
set{
... // -> 계산 속성 setter => 밖에서 값을 세팅하기
}
}
타입 속성
: 타입 자체에 속한 속성
보편적인 속성 혹은 모두에게 공유해야하는 성격에 사용
class Circle{
static let pi = 3.141592 // ->저장 타입 속성, static 사용, 초기값 설정 필수
class var multiple: Double{
return pi * 2 //-> 계산 타입 속성, static(재정의x) or class(재정의 o) 사용
}
}
속성 감시자
: 변화시점을 관찰하는 실질적 메서드
class Profile{
...
var sMessage: String = "메세지" {
willset{
print("\(sMessage)->\(newValue)") // -> 새 값 저장되기 직전에 호출
}
didset{
print("\(oldValue)->\(sMessage)") // -> 새 값 저장 직후 호출
}
}
}
메서드 정리
인스턴스 메서드
: 특정 인스턴스와 관련된 함수
class Dog {
...
func sit() {
print("sit !")
}
}
타입 메서드
: 인스턴스가 아닌 타입 자체에 속한 메서드, 내외부에서 Type.method로 접근해야함
class Dog{
...
static func saySpec() {
print("\(species)입니다."
}
}
//사용
Dog.saySpec()
서브스크립트
: instance[파라미터] 의 형태
class SomeData {
var datas = ["a"...중략]
subscript(index: Int) -> String {
get{
return datas[index]
}
set{
datas[index] = newValue
}
}
}
접근 제어
: private로 선언된 속성/메서드는 외부에서 접근 불가 -> 은닉화
싱글톤 패턴
: static let shared = DataManager()
유일하게 필요로하는 1개의 객체일 때 사용
'STUDY > iOS' 카테고리의 다른 글
속성과 메서드를 붕어빵으로 아라보자 (0) | 2024.08.06 |
---|---|
[앨런 Swift문법 마스터 스쿨] 3주차 시험 오답 노트 (0) | 2024.08.05 |
[앨런 swift문법 마스터 스쿨] 클래스, 초기화 함수 init, self (2) | 2024.07.22 |
[앨런 Swift문법 마스터 스쿨] 2주차 시험 오답 노트 (3) | 2024.07.20 |
[앨런 swift 문법 마스터 스쿨] 열거형, 옵셔널 타입, 옵셔널 열거형 (0) | 2024.07.20 |