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
- 패캠챌린지
- 기본문법
- enum
- beginAsyncWrite
- Realm
- 패스트캠퍼스
- SeSAC
- TableView
- Optional Chaining
- 패스트캠퍼스후기
- 직장인자기계발
- Background
- 독학
- 직장인인강
- Git
- 문자열 보간법
- 인스펙터
- 30개프로젝트로배우는iOS앱개발withSwift초격자패키지Online
- xcode
- RawValue
- 프로퍼티 관찰자
- switch
- ios
- 함수
- 옵셔널 체이닝
- swift
- Threading
- userDefaults
- cancelAsyncWrite
- 열거형
Archives
- Today
- Total
아삭아삭 iOS 개발
[Swift 독학] 패스트캠퍼스 챌린지 21일차_프로퍼티_저장 프로퍼티 본문
이번 포스팅에서는 프로퍼티가 무엇인지에 대해 알아보고, 저장·연산·타입 프로퍼티 중에서도
저장 프로퍼티에 대해 예시를 통해 자세히 정리해보려고 합니다.
■ 프로퍼티 (property)
- 클래스, 구조체 또는 열거형 등에 관련된 값을 의미
→ 클래스, 구조체, 열거형 내부에 구현 가능 - 타입과 관련된 값을 저장, 연산 가능
- 프로퍼티 종류
: 인스턴스 저장 프로퍼티 / 타입 저장 프로퍼티 / 인스턴스 연산 프로퍼티 / 타입 연산 프로퍼티 / 지연 저장 프로퍼티 - 열거형 내부에서는 연산 프로퍼티만 구현 가능
(연산 프로퍼티는 var로만 선언 가능)
1) 저장 프로퍼티 (stored property)
- 인스턴스의 변수(var) 또는 상수(let)(= 구조체 내에 선언된 변수나 상수)
→ 인스턴스에 프로퍼티의 값이 저장된 것 - 클래스(class)와 구조체(struct)에서 사용 가능
- 프로퍼티를 사용하는 가장 간단한 방법
- 일반적으로 변수(var)로 선언된 프로퍼티는 값 변경 가능, 상수(let)로 선언된 프로퍼티는 값 변경 불가
※ 구조체 인스턴스를 상수(let)로 선언할 경우, (값 타입이기 때문에) 내부에서 변수(var)로 선언된 프로퍼티라고 해도 모두 상수가 되어서 수정 불가
※ 클래스 인스턴스를 상수(let)로 선언할 경우, (참조타입이기 때문에) 내부에서 변수(var)로 선언된 프로퍼티의 값 수정 가능
ex1) 고양이라는 "구조체” 선언, 구조체를 인스턴스화한 경우
struct Cat {
var name: String
let age: Int
}
var cat = Cat(name: "Elice", age: 1)
cat.name = "Christine" // 저장 프로퍼티 값 변경 가능
// cat.age = 3 저장 프로퍼티 값 변경 불가
let cat2 = Cat(name: "Elice", age: 1)
// cat2.name = "Christine" name 프로퍼티가 내부에서 변수(var)로 선언된 프로퍼티라고 해도, 구조체 인스턴스인 cat2가 상수(let)로 선언되었기 때문에 값 변경 불가
ex2) 다람쥐라는 "클래스” 선언, 클래스를 인스턴스화한 경우
class Squirrel {
var name: String
let age: Int
init(name: String, age: Int) {
self.name = name
self.Int = Int
}
}
let squirrel = Squirrel(name: "Elice", age: 1)
cat.name = "Christine" // 클래스 인스턴스인 squirrel이 상수(let)로 선언되었어도, 내부에서 변수(var)로 선언한 name 프로퍼티 값 변경 가능
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
'Swift' 카테고리의 다른 글
[Swift 독학] 패스트캠퍼스 챌린지 23일차_프로퍼티 관찰자 (0) | 2022.02.15 |
---|---|
[Swift 독학] 패스트캠퍼스 챌린지 22일차_프로퍼티_연산, 타입 프로퍼티 (0) | 2022.02.14 |
[Swift 독학] 패스트캠퍼스 챌린지 20일차_구조체와 클래스 비교 (0) | 2022.02.12 |
[Swift 독학] 패스트캠퍼스 챌린지 19일차_초기화 (0) | 2022.02.11 |
[Swift 독학] 패스트캠퍼스 챌린지 18일차_클래스 (0) | 2022.02.10 |