본문 바로가기
Swift/Diary

[Swift 코딩 일기] Diary 04.

by Rowan93 2022. 11. 4.

벌써 학습 3주차가 지나버렸다...

시간이 정말 빠르다.

2주차에는 일기를 1회밖에 작성하지 못해서 아쉬웠으니 이번 주에는 2회정도 작성해보려고 한다.

 

이번 주에 학습한 내용 중에서 학습자료 외에 추가학습한 내용들을 조금 정리해보자!

 


1. ARC(Automatic Reference Counting)

  • swift는 앱의 메모리 사용량을 추적 및 관리하기 위해 ARC를 사용한다.
  • ARC는 클래스 인스턴스가 더 이상 필요하지 않을 때, 자동으로 해당 인스턴스가 사용하던 메모리를 비워준다.
  • Reference counting은 오직 class 타입 인스턴스에서만 적용된다. (struct, enum은 value 타입으로 적용할 수 없음)
  • ARC가 아직 사용중인 인스턴스의 메모리를 없애버린다면 앱 구동 중에 crash가 발생할 것… 이를 방지하기 위해 class 인스턴스의 property, constant, variable등을 할당할 때 각 요소들은 인스턴스와 “strong” reference를 만든다.
  • 각 요소들의   인스턴스와 “strong” reference가 남아있는 한 인스턴스에 할당된 메모리는 없어지지 않는다.

 

- 참조 [ https://docs.swift.org/swift-book/LanguageGuide/AutomaticReferenceCounting.html ]


2. memberwise initializer

  • struct는 따로 이니셜라이저를 설정하지 않아도 내부의 프로퍼티와 같은 이름으로 parameter 이름이 생성된다.
  • 개인이 추가로 이니셜라이저를 설정할 경우 memberwise는 구동하지 않는다.

 

- 참조 [ https://velog.io/@din0121/Initializer-Memberwise-Initializer ]


3. 열거형(Enumaration)의 CaseIterable 프로토콜

  • 열거형에서 해당 프로토콜을 채택할 시, case 들을 배열처럼 사용할 수 있다!
enum someEnumeration: CaseIterable {
       case A, B, C
}

for case in someEnumeration.allCases {     // 반복문에 적용 가능!
print("\(case)")
}
  • case의 타입을 정의하고 프로토콜을 사용할 경우 이렇게 표현할 수 있다.
enum someEnumeration: String, CaseIterable {
  case A = "에이", B = "비", C = "씨"
}

추가) enum 타입에서는 내부에 저장 프로퍼티를 선언할 수 없다!

enum 내부 프로퍼티는 오직 Computed property 연산 프로퍼티로 선언해야 한다.

 

- 참조 [ https://developer.apple.com/documentation/swift/caseiterable ]


4. 변수명에 백틱(')을 사용하는 이유

where, func 등 스위프트 키워드와 동일한 이름으로 상수 및 변수의 이름을 지정해야 할 경우, 백틱으로 묶어주어야 한다.

var `func`: String = "함수"
var `where`: Int = 23
var `super`: Double = 3.1

print("\(`func`)와 \(`where`)과 \(`super`)")

 

한 가지 주제를 정해놓고 정리하는 내용이 아니다 보니 뒤죽박죽 통일성도 없고 찾아보기 힘들 것 같다.

다음 주부터는 간단히 한 가지 내용에 대해서만 조금 깊게 공부해보는 시도를 해보자!

 

이렇게 주어진 내용 외에 필요한 것을 스스로 공부해본 적이 있었을까?

지금까지 거의 대부분의 것들을 항상 누군가 시키는 것만 해왔던 것 같다.

관심을 갖고 찾아본 거라곤 게임관련한 정보 뿐이었다.

 

이번 캠프를 통해 학습하는 자세부터 고쳐지는 느낌이 들어 굉장히 보람차다.

하지만 아직도 평생가지고 왔던 습관은 버리기 힘들다.

나쁜 습관은 버리고 주도적인 삶의 자세를 가질 수 있도록 노력하자!

'Swift > Diary' 카테고리의 다른 글

[Swift 코딩일기] Diary 05.  (0) 2022.11.22
[Swift 코딩 일기] Diary 03.  (0) 2022.10.24
[Swift 코딩 일기] Diary 02.  (0) 2022.10.20
[Swift 코딩 일기] Diary 01.  (2) 2022.10.18

댓글