2021. 9. 30. 19:40ㆍProgramming/iOS_Swift
핵심만 쉽게 풀어서 이해해보자면, Property란 어떠한 value 값을 특정 클래스, 구조체, 열거형에 연결시켜준다. 프로퍼티에는 저장 프로퍼티, 연산프로퍼티, 타입프로퍼티 등이 존재하는데, 여기서는 프로퍼티의 종류 중 Stored Properties에 관한 내용만 우선 다뤄보자.
1문단 2번째 줄에 의하면, 저장 프로퍼티는 인스턴스의 일부로서 상수와 변수값들을 저장한다. 즉, 특정 클래스나 구조체 내의 변수나 상수값을 저장 프로퍼티로 저장한다는 뜻이다.
스위프트 문서의 예시를 빌려서 살펴보자면, FixedLengthRange 라는 구조체내의 변수로 선언된 firstValue와 상수로 선언된 length는 저장 프로퍼티로서 Instance에 활용이 된다. 즉 변수 구조체 rangeOfThreeItem이라고 하는 실체(인스턴스)의 일부로서 활용된 모습을 위의 예시에서 확인할 수 있다.
그런데, 주의해야 될게 인스턴스를 변수로 선언하는게 아닌 상수로 선언한다면 예시 인스턴스 내부의 프로퍼티(firstValue, length)들을 수정할 수 없다. 수정하면 위의 예시처럼 에러가 뜨게 될 것이다.
* Instance?
프로퍼티, 메서드, 인스턴스에 대해서 배워도 용어 자체가 생소하다보니 이게 무슨 말인지 도무지 와닿지 않았다. 그 중에서 특히 인스턴스가 제일 이해가 안갔는데 최대한 혼자서 쉽게 이해해보려고 노력한 결과 이렇게 생각하니 좀 편하게 이해가 됐다.
예를 들어 우리가 붕어빵 장사를 한다고 했을 때, 붕어빵을 만들기 위해서는 붕어빵틀이 필요하고 반죽, 팥, 적절한 온도 등이 필요하다. 여기서 가장 뼈대가 되는 붕어빵틀(클래스 또는 구조체 등)에다가 반죽과 팥(저장 프로퍼티)을 개인 기호에 맞게끔 넣고 적절한 온도(저장 프로퍼티)에 구워준다. 그 결과 우리는 붕어빵1, 붕어빵2, 붕어빵3 ... 의 실체(인스턴스)를 얻게 되는 것이다.
위의 예시를 다시 가져와 살펴보면, FixedLengthRange는 붕어빵틀이고 내부의 저장 프로퍼티 firstValue와 length는 반죽과 팥이 되는 것이다. 그렇게 구워서 만들어낸 실체가 rangeOfFourItems라는 인스턴스이다. 다만, 차이점은 이미 만들어진 붕어빵은 다시 반죽을 넣고 못굽지만(상수 인스턴스) 변수로 선언된 rangeOfFourItems는 저장 프로퍼티를 수정할 수 있다!
'Programming > iOS_Swift' 카테고리의 다른 글
[iOS_Swift] 클래스(class)와 구조체(struct)의 이니셜라이저(initializer) (0) | 2021.10.18 |
---|---|
[iOS_Swift] 타입 캐스팅(Type Casting) (0) | 2021.10.17 |
[iOS_Swift] 옵셔널(Optional), 옵셔널 바인딩(Optional Binding), 옵셔널 체이닝(Optional Chaining) (0) | 2021.10.14 |
[iOS] Xcode 와 깃허브 연동 에러해결(reference 'refs/heads/main' not found (-9)) (0) | 2021.09.30 |
[iOS] UIKit Framework (Framework와 Library 차이점) (0) | 2021.09.30 |